Java不允许多重继承,这意味着一个类不能从两个没有共同点的类继承,这意味着它们不在同一继承路径上。但是,如果这些类是该类的直接超类的超类,则一个类可以继承自更多类。但是该类间接地从这些类继承,这意味着它不会从这些上层超类中“看到”任何东西,对吧?在考虑构造函数时我很困惑(在构造函数中使用 super() )。例如,如果我们有以下类:
public class A {
public A() {
....
}
}
public class B extends A {
public B() {
super();
....
}
}
public class C extends B {
public C() {
super();
....
}
}
C 类的构造函数首先使用 super() 调用 B 类的构造函数。发生这种情况时,B 的构造函数本身首先调用 A 的构造函数(使用 super()),但是 C 的构造函数对 A 的构造函数一无所知,对吧?我的意思是,继承仅来自直接超类——继承层次结构中的第一个(最近的)类。这是我的问题——对于 super(),我们仅指直接超类的构造函数,无论继承层次结构中有多少其他类。这不仅适用于构造函数,还适用于任何方法和实例变量。
问候