У меня вопрос о наследовании в Java.
У меня есть два класса A
и B
, а класс B, наследует от A:
public class A {
public A() {
System.out.println("Hi!");
}
}
public class B extends A {
public B() {
System.out.println("Bye!");
}
public static void main(String[] args) {
B b = new B();
}
}
Когда я запускаю программу B, вывод:
Hi!
Bye!
Вопрос: почему вызывается конструктор из
class A
, когда я создаю и объектclass B
?
Я знаю, что B наследует все от A - все переменные экземпляра или класса и все методы, и в этом смысле объект B имеет все характеристики A плюс некоторые другие характеристики, определенные в B. Однако я не знал и не предполагал, что когда я создаю объект типа B, также вызывается конструктор A. Итак, пишу это:
B b = new B();
создает Два объекта - один из типов B и один из типов A.
Это становится интересным,
может кто-нибудь объяснить, почему именно это происходит?