bb refers Derived class, when i call show() method, but when i print bb.b - is prints Base class property . Why is this happening?
class Base {
int b=10;
public void show() {
System.out.println("Base show() called");
}
}
class Derived extends Base {
int b=20;
public void show() {
System.out.println("Derived show() called");
}
}
public class MainClass {
public static void main(String[] args) {
Base bb = new Derived();;
bb.show();
System.out.println(bb.b);
}
}
output :
Derived show() called
10
Derivedvariable to print aDerivedfield.