楼主自己写的代码可能没法完全表达自己的意思,我这里自己修改一下应该够更好解释。看下面的代码,三个类中都有num属性。- class Fu
- {
- int num=10;
- }
- class Zi extends Fu
- {
- int num=5;
- }
- class Demo extends Fu
- {
- int num=55;
- public static void main(String[] args)
- {
- Zi x=new Zi(); //子类引用
- System.out.println(x.num); //结果是5
- Fu y=new Zi(); //父类引用
- System.out.println(y.num); //结果是10
- Demo c=new Demo(); //子类引用
- System.out.println(c.num); //结果是55
- Fu d=new Demo(); //父类引用
- System.out.println(d.num); //结果是10
- }
-
- }
复制代码 运行的结果是
5
10
55
10
很明显可以看出结果只和所引用的类有关。当对象引用父类时,对象num属性值为父类的,当对象引用子类时,对象num属性值为子类的。 |