你在子类sun中重载了getX()方法,根据多态性,无论你调用getX方法的引用是父类的还是子类的,只要引用指向的对象是子类的对象,getX方法访问到的x值都是子类中的,而不是你认为的使用父类的引用调用getX方法就会访问到父类的x值.
如果你在子类的定义中去掉对getX方法的定义,结果就会是你预料的那样了,因为成员变量x不能被重载,而是在子类中被隐藏了,getX方法访问到的x值是根据调用getX方法的引用决定的.