我知道PHP和Java不允许这样做。我猜其他语言也不允许这样做。但是为什么呢?我认为这将非常有用。
这里的代码(它不是正确的语法对任何语言),解释了我的意思…
class X extends Y, Z {
}
如果可能的话,类X应该拥有Y和Z所拥有的所有字段和方法。
以下语言支持多重继承:
Perl、Perl 6、Python、c++、Curl、Dylan、Eiffel、Logtalk、Object REXX、OCaml和Tcl还有 Scala (通过使用mixin类)和PHP (通过使用traits类)
和
一些语言,如c#、Java和Ruby实现了单继承,尽管协议或接口提供了一些真正的多重继承的功能。
c++允许多重继承
您可以在c++的创建者Bjarne Stroustrup的文章中阅读该特性的完整描述。
但这不是解决你所有问题的灵丹妙药。多重继承产生的问题通常比它解决的问题要多。如果你用你选择的语言发布一个问题来解释你想要达到的目标,也许你会得到更好的建议。
我当然不会建议仅仅为了利用多重继承而学习c++。
c++ ?
http://www.learncpp.com/cpp-tutorial/117-multiple-inheritance/我想参考维基百科,因为那里有一个编程语言列表,它们以您期望的方式支持多重继承,或者作为称为"mixin"的机制。
http://en.wikipedia.org/wiki/Multiple_inheritance假设在Y类和Z类中有两个具有相同名称的属性/方法,因此编译器不知道必须继承哪个类的属性/方法。
*在Java中,你可以使用接口进行多重继承
Python:
class DerivedClassName(Base1, Base2, Base3):
<statement-1>
.
.
.
<statement-N>
参见Python教程9.5.1。多重继承
在Java中可以通过接口默认方法实现多重继承。这不是完美的,但大多数情况下是有效的。