Java中的多重inheritance如何工作?

Class Object是类层次结构的根。 每个类都有Object作为超类。 那么,如果我正在扩展API类,它会是多重inheritance吗? 显然,Java不支持多重inheritance。 它是如何工作的?

超类与父类不同。 你只能有一个母亲,但你有更多的女性祖先。

正如其他人所解释的那样,Java不支持多重inheritance。
但是,当您实现多个接口时,您可以(有点)具有多重inheritance:

 interface Moveable { void relocate(Coordinate position); Coordinate getCurrentPos(); } interface Tradeable { void sell(BigInteger amount); void buy(BigInteger amount); } interface Crashable { void crash(); } class Vehicle implements Moveable, Tradeable, Crashable { } 

现在, Vehicle应该从它实现的接口中获取所有方法。

不, Object将只是您创建的任何类的最终父类

多重inheritance意味着您可以编写一个扩展StringInteger的类,并获得每个类的属性。 这不能用Java完成。 您可能希望查看Delegate模式,如果这是您想要做的事情

不,它只是inheritance,照常营业

 grandparent parent child 

孩子只有一个父母,父母有祖父母(没有逻辑意义,但无论如何:)

多inheritance将是从两个不同的类inheritance而不需要彼此做任何事情

 donkey car donkeycar 

(正如你已经注意到的,它在java中是不可能的)

你的对象的超类也有一个超类等等。

所有对象都形成一个树,java.lang.Object作为它的根节点。

没有。

多重inheritance意味着您例如从两个类inheritance

 class A {} class B {} class C extends A, B {} 

这在Java中是不可能的。

你能做的是

 class A {} class B extends A {} class C extends B {} 

所以你有超过一个超级但只有一个父级。

我理解多重inheritance水平工作 (多个父超类直接inheritance到一个子类)而不是垂直(父母的父母),考虑inheritance树。

正如您所说,Java中只允许垂直类型。

Sun Microsystem省略了多重inheritance。 但是,多重inheritance在某种程度上是有用的。 这是一个可能帮助您进行java多重inheritance的链接。

http://java.sys-con.com/node/37748

希望有所帮助。

inheritance是传递性的。 您扩展了一个API类,该API类本身扩展了Object。 所以你间接扩展了Object。 更短,如果A延伸B而B延伸C,则A延伸C.

这不是多重inheritance。 如果你愿意,’inheritance链’可以随你所愿。 但最终,一切都在它的最后。

真正的多重inheritance将同时从两个不相关的类扩展。 你不能用Java做到这一点。