
class Base {
String var = "Base";
void first() {
System.out.println("first: "+ second());
}
String second() {
return var;
}
}
class Child extends Base {
String var = "Child";
public static void main(String[] args) {
Base b = new Base();
Child c = new Child();
b.first();
c.first();
}
}
В обоих случаях выведется 'first: Base', т. к. метод second() вызывается из класса Base.Чтобы в классе Child вывести 'Child', необходимо в нём переопределить метод second():
class Child extends Base {
String var = "Child";
@Override
String second() {
return var;
}
Child c = new Child();
c.first(); // first: Child