В Java нет переопределения переменных и только переопределения метода.
System.out.println(((Child) p).x);
Эта строка указывает точку p
на Child
и получает эту переменную x
.
Строка, System.out.println(p.x);
указывает, что печать Parent
x