Java中属性的覆盖?

来源:互联网 发布:淘宝自助服务在哪 编辑:程序博客网 时间:2024/04/29 03:53
package com.touch.Test;//父类class FatherClass {  public int value;   public void getValue(){  System.out.println("FatherClass: "+this.value);  System.out.println("this is:"+this);  }}//子类class ChildClass extends FatherClass {  public int value = 100;  public void getValue(){  System.out.println("ChildClass: "+this.value);  System.out.println("this is:"+this);  super.getValue();  }}//孙子类,class SunziClass extends ChildClass {  public int value = 200;  public void getValue(){  System.out.println("SunziClass: "+this.value);  System.out.println("this is:"+this);  super.getValue();  }}//这儿是调用的Mainpublic class TestInherit {    public static void main(String[] args) {    SunziClass cc = new SunziClass();    cc.getValue();   }}

结果为:

SunziClass: 200this is:com.touch.Test.SunziClass@2f57d162ChildClass: 100this is:com.touch.Test.SunziClass@2f57d162FatherClass: 0this is:com.touch.Test.SunziClass@2f57d162

原因是:属性是由编译期来决定的,不是像方法的重写那样,是运行期来决定。

0 0