Динамическая отправка метода в 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 ()?

Ответы на вопрос(5)

Ваш ответ на вопрос