Код: Выделить всё
class Base {
int id = 1000; //Line n1
Base() {
Base(); //Line n2
}
void Base() { //Line n3
System.out.println(++id); //Line n4
}
}
class Derived extends Base {
int id = 2000; //Line n5
Derived() {} //Line n6
void Base() { //Line n7
System.out.println(--id); //Line n8
}
}
public class Test {
public static void main(String[] args) {
Base base = new Derived(); //Line n9
}
}
Я понимаю, что Производный > расширяет Base, и оба класса имеют переменную id и метод Base(). Порядок следующий:
- вызов конструктора Derived
- вызов конструктора Base
- вызов метода Base(), из-за переопределения метода выполняется метод в дочернем классе.
Подробнее здесь: https://stackoverflow.com/questions/790 ... nheritance
Мобильная версия