Ruby 不支持多重繼承,也就是說,一個類不能直接從多個父類繼承屬性和方法。不過,Ruby 提供了一種叫做 "mixin" 的機制,允許模塊(Module)被包含到類中,這提供了多重繼承的某些功能。
在 Ruby 中,你可以定義模塊(Module),然后使用 `include` 或 `prepend` 關鍵字將模塊混入(mixin)到類中。模塊不能實例化,但它們可以包含方法。當一個模塊被包含到一個類中時,該類的對象就可以調用模塊中定義的方法。通過這種方式,Ruby 使用模塊來實現了代碼的重用。
這是一個簡單的例子:
```ruby
module A
def a_method
puts 'A method'
end
end
module B
def b_method
puts 'B method'
end
end
class MyClass
include A
include B
end
obj = MyClass.new
obj.a_method # 輸出: A method
obj.b_method # 輸出: B method
```
在上面的例子中,`MyClass` 類通過包含模塊 `A` 和 `B` 來'繼承'了兩個模塊的方法。這展示了如何通過 `include` 關鍵字將模塊混入類中,從而間接實現了類似于多重繼承的功能。
需要注意的是,當兩個模塊中有同名方法時,后被包含的模塊的方法會覆蓋先被包含的。此外,Ruby 還提供了 `extend` 關鍵字,用于將模塊的方法添加到單個對象(而非類)上,這為動態地擴展對象提供了可能。