Это все о Java inheritance
и overriding
. method()
в родительском классе будет переопределяться по методу child.
System.out.println(((Child) p).x);// here you are invoking child
Затем вы получите атрибуты ребенка.
И следующий - все о полиморфизме Java.
((Child) p).x // invoking object type, x=4 (object is child )
p.x // invoking reference type, x=5 (reference is parent)