Динамическая отправка метода в Java
class A{
int a=10;
public void show(){
System.out.println("Show A: "+a);
}
}
class B extends A{
public int b=20;
public void show(){
System.out.println("Show B: "+b);
}
}
public class DynamicMethodDispatch {
public static void main(String[] args) {
A aObj = new A();
aObj.show(); //output - 10
B bObj = new B();
bObj.show(); //output - 20
aObj = bObj; //assigning the B obj to A..
aObj.show(); //output - 20
aObj = new B();
aObj.show(); //output - 20
System.out.println(bObj.b); //output - 20
//System.out.println(aObj.b); //It is giving error
}
}
В приведенной выше программе я получаю сообщение об ошибке, когда пытаюсь вызвать AObj.b.
1. почему я не могу получить доступ к этой переменной через aObj, хотя она относится к классу B ??
2. почему я могу использовать метод show ()?