Java не допускает множественное наследование, что означает, что класс не может наследоваться от двух классов, которые не имеют ничего общего, что означает, что они не находятся на одном и том же пути наследования. Однако класс может наследовать от нескольких классов, если эти классы являются суперклассами прямого суперкласса класса. Но класс наследует от этих классов косвенно, что означает, что он ничего не «видит» от этих верхних суперклассов, верно? Я был сбит с толку при рассмотрении конструкторов (используя super () в конструкторе). Например, если у нас есть следующие классы:
public class A {
public A() {
....
}
}
public class B extends A {
public B() {
super();
....
}
}
public class C extends B {
public C() {
super();
....
}
}
конструктор класса C сначала вызывает конструктор класса B, используя super (). Когда это происходит, конструктор B сам вызывает сначала конструктор A (с super ()), но конструктор C ничего не знает о конструкторе A, верно? Я имею в виду, что наследование происходит только от прямого суперкласса - первого (ближайшего) класса из иерархии наследования. Это мой вопрос - под super () мы подразумеваем только конструктор прямого суперкласса, независимо от того, сколько других классов у нас в иерархии наследования.
И это касается не только конструкторов, но и любых методов и переменных экземпляра.
Привет