【问题标题】:Is it Possible to achieve Multiple Inheritence in ruby?是否可以在 ruby 中实现多重继承? 【发布时间】:2026-01-19 10:25:01 【问题描述】: 我怀疑我们是否可以使用“模块”概念来实现多重继承,或者是否有其他关键字或概念可以在 ruby 中实现多重继承? 【问题讨论】: 标签: ruby multiple-inheritance 【解决方案1】: Ruby 支持 mixin 组合。一个类只能继承一个超类,但它可以混入许多个模块。 严格来说,这不是多重继承,但它至少提供了跨不同类的行为共享。 【讨论】: 而且在我看来它比多重继承要好得多。 但是,从某种意义上说,MI 更强大。当然,不是在可计算性理论图灵机的意义上,而是与表达性有关:您可以使用 MI 轻松实现 mixins(事实上,mixins 在 Eiffel、Python 和 C++ 中是一个非常常见的习惯用法),但您无法实现MI 使用 mixins。 OTOH,很容易把 MI 搞得一团糟。 cough C++ cough 但是,正如 Eiffel 清楚地表明的那样,做正确并非不可能。请记住:如果您只知道 C++,那么判断 MI 就像判断所有美国人一样,而您只知道 Glenn Beck 或用 Pinto 判断所有汽车。 我不应该提出我不太熟悉的话题,很棒的评论。 :)