Java对多重继承的怀疑

时间:2011-09-26 09:36:37

标签: java

Java不支持多重继承,但Object类默认是所有类的超类。 e.g

class Object
{

}
class B
{

}
class A extends B
{
}

A类可以访问B和Object的所有方法。这不是多重继承的例子吗? 因此,Java不支持多重继承是正确的。


我的问题是找不到多级和多重继承之间的区别。 Java Docs,它自称:Class Object是类层次结构的根。每个类都将Object作为超类。所有对象(包括数组)都实现此类的方法。 所以它意味着Class Object是A类的超类{前一个例子}。 但B级也是A级超级。 那是什么意思呢?

4 个答案:

答案 0 :(得分:7)

它被称为nature

transitive Inheritance.

答案 1 :(得分:7)

查看传递继承之间的区别(C直接从B继承并从A传递):

transitive

多个继承(C继承自AB):

transitive

答案 2 :(得分:4)

不,不是。多重继承是指类具有多个直接基类,如:

class A {}

class B {}

// not valid Java
class C extends A, B {}

一个类可能有许多间接基类,每个类只有一个直接基类,如:

class D extends A {}

class E extends D {}

class F extends E {}

这里的继承层次结构是F - > E - > D - > A - >对象,但这仍然是单继承。

答案 3 :(得分:1)

由于没有Java类可以直接扩展两个或更多类,因此可以肯定地说Java不支持多重继承。

如果您能够说 A类扩展B,C ,您将拥有多重继承,但您永远不能这样做。