Dynamic Method Dispatch in 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
}
}
W powyższym programie otrzymuję błąd wen i próbuję wywołaćaObj.b.
1. dlaczego nie jestem w stanie uzyskać dostępu do tej zmiennej za pośrednictwem aObj, chociaż odnosi się ona do klasy B?
2. Dlaczego mogę uzyskać dostęp do metody show ()?