Java中的多重继承如何工作?

时间:2010-08-10 12:24:43

标签: java multiple-inheritance

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

9 个答案:

答案 0 :(得分:9)

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

答案 1 :(得分:6)

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

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应该是它实现的接口的所有方法。

答案 2 :(得分:4)

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

多重继承意味着您可以编写一个扩展StringInteger的类,并获得每个类的属性。这不能用Java完成。如果这是你想做的事情,你可能想看看the Delegate pattern

答案 3 :(得分:3)

不,它只是继承,照常营业

grandparent

parent

child

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

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

donkey      car

     donkeycar

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

答案 4 :(得分:2)

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

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

答案 5 :(得分:1)

没有。

多重继承意味着您从两个类继承

class A {}

class B {}

class C extends A, B {}

这在Java中是不可能的。

你可以做的是

class A {}

class B extends A {}

class C extends B {}

所以你有一个超级班,但只有一个班级。

答案 6 :(得分:0)

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

正如你所说,Java中只允许垂直种类。

答案 7 :(得分:0)

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

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

希望有所帮助。

答案 8 :(得分:0)

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

这不是多重继承。如果你愿意,'继承链'可以随你所愿。但最终,一切都有对象。

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