好鬼过瘾
2015-06-06 15:25
public class Fighter extends Card {
public Fighter(){
System.out.println("1 super role: " + super.role);
System.out.println("1 figher role:" + role) ;
role=3;
System.out.println("2 figher role:" + role) ;
System.out.println("2 super role: " + super.role);
}
}
输出结果为:
1 super role: 5
1 figher role:5
2 figher role:3
2 super role: 3
Fighter继承Card,我修改super.role的值,会导致子类的role值也改变???
属性是不能被覆盖或者重写的。
所以无论是this.role还是super.role 访问的都是同一个属性。
你对这个属性进行了操作 当然会出现这种情况。
如果子类中有和父类同名的属性时候,this.role和super.this才会有区别。
子类继承父类的非私有属性,所以当你重新定义了父类中的属性时,再次调用时肯定显示修改后的值
Java入门第二季 升级版
530553 学习 · 6091 问题
相似问题