У меня есть три класса:
public class A {
public A(){
System.out.println("in A");
}
}
public class B extends A{
public B(){
System.out.println("in b");
}
}
public class C extends B{
public C(){
System.out.println("in C");
}
}
Теперь я действительно не уверен, как работают вызовы конструктора.
Если я создаю экземпляр C c= new C();
, в каком порядке (и почему этот порядок) вызывается конструктор.
Если я создаю экземпляр класса C, то не должен ли он просто проверить, есть ли у класса C какой-либо конструктор или нет, и если он есть, он будет его использовать?
Почему он выводит-> In A In B In C?
Разве он не поднимается в иерархии только тогда, когда не находит конструктор в своем собственном классе? Или конструкторы суперкласса вызываются неявно каждый раз?