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` 关键字,用于将模块的方法添加到单个对象(而非类)上,这为动态地扩展对象提供了可能。