Here is my code :
class A {
int i = 10;
public void printValue() {
System.out.println("Value-A");
}
}
class B extends A{
int i = 12;
public void printValue() {
System.out.print("Value-B" + i);
}
}
public class Test{
public static void main(String argv[]){
A a = new B();
a.printValue();
System.out.println("===>"+a.i); // This line print 10 instead of 12
}
}
System.out.println("===>"+a.i) is giving 10 not 12 ,what am i missing ? As per my understanding for dynamic method dispatch it should print 12