Java对多重继承的质疑

Java对多重继承的质疑,java,Java,Java不支持多重继承,但默认情况下对象类是所有类的超类。 e、 g 类A可以访问B的所有方法和对象。这不是多重继承的一个例子吗? 那么,Java不支持多重继承是正确的吗 我的问题不是要找出多级继承和多重继承之间的区别。 Java文档,它自己说:类对象是类层次结构的根。每个类都有对象作为一个超类。所有对象(包括数组)都实现此类的方法。 这意味着类对象是类A的超类{前面的示例}。 但是B班也是A班的超级班。 那么这是什么意思呢 它被称为的可传递的不,它不是。多重继承是指一个类具有多个直接基类,如

Java不支持多重继承,但默认情况下对象类是所有类的超类。 e、 g

类A可以访问B的所有方法和对象。这不是多重继承的一个例子吗? 那么,Java不支持多重继承是正确的吗


我的问题不是要找出多级继承和多重继承之间的区别。 Java文档,它自己说:类对象是类层次结构的根。每个类都有对象作为一个超类。所有对象(包括数组)都实现此类的方法。 这意味着类对象是类A的超类{前面的示例}。 但是B班也是A班的超级班。
那么这是什么意思呢

它被称为

的可传递的不,它不是。多重继承是指一个类具有多个直接基类,如:

class A {}

class B {}

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

class E extends D {}

class F extends E {}
一个类可能有许多间接基类,每个都只有一个直接基类,如:

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->Object,但这仍然是单一继承。

因为没有Java类可以直接扩展两个或多个类,所以可以肯定地说Java不支持多重继承


如果你能说A类扩展了B类,C类,你就会有多重继承,但你永远不能这样做

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

和多重继承(
C
继承自
A
B
):


+1关于多重继承的含义,似乎是一个足够公平的问题。如果我错了,请纠正我。在问题中,类B将java.lang.Object作为其超类,而类A将类B作为其超类。是类B和类java.lang.Object之间的继承关系。对象在类A中被屏蔽。不,不是屏蔽,所有内容都只是添加在上,除了具有相同签名的方法,它们被重写。即使添加了使用相同名称声明的变量,它们也只是被称为“隐藏”,但仍然可以使用强制转换或
super
关键字(如果是直接父级)访问。不过,你永远不会想这么做,只要给你的变量起不同的名字,它们就都被添加进去了,没有任何隐藏。