значение из суперкласса
ли переменная суперкласса обращаться к переопределенному методу подкласса. Например:
class A {
void callMe() {
System.out.println("Inside A");
}
}
class B extends A {
void callMe() {
System.out.println("Inside B");
}
}
class Dispatch {
public static void main(String args[]) {
A a = new A();
B b = new B(); // Object of type B
A r; // Obtain a reference of type A
r = a; // Refers to A object
r.callMe(); // Calls A's version of callMe()
r = b; // Refers to B object
r.callMe(); // calls B's version of callMe() and my question is on this
}
}
Ранее я узнал, что переменная суперкласса, которая ссылается на объект подкласса, может обращаться только к тем частям объекта, которые определены суперклассом. Тогда как второйr.callMe()
вызовB
версияcallMe()
? Стоит только позвонитьA
версияcallMe()
снова.