В следующем примере:
class Base {
int x=10;
Base() {
show();
}
void show() {
System.out.print ("Base Show " +x + " ");
}
}
class Child extends Base {
int x=20;
Child() {
show();
}
void show() {
System.out.print("Child Show " + x +" ") ;
}
public static void main( String s[ ] ) {
Base obj = new Child();
}
}
- Почему вывод, как показано ниже
Child Show 0 Child Show 20
- Я думал, что конструкторы могут получить доступ к членам экземпляра только после завершения его суперконструкторов.
Я думаю, что здесь происходит то, что супер-конструктор вызывает дочерний метод show (), потому что этот метод был переопределен в Child. так как он был переопределен, но почему значение x 0 и почему он может получить доступ к этому методу до того, как завершится супер-конструктор?