62,628
社区成员
发帖
与我相关
我的任务
分享
public class Fighter {
public int role=5;
}
public class Card extends Fighter {
public Card(){
role=3;
System.out.println(super.role);//为何这句话输出的是3而不是5??
}
public class Card extends Fighter {
public int role;
public Card(){
role=3;
System.out.println(super.role);//输出5
}
子类继承父类后,就拥有了父类所有成员,当子类中没有和父类同名的属性时,this.role还是super.role 都是一个东西。
属性不能被重写也不能被覆盖,不过这也是相对的。 当子类中有和父类中同名的属性时,this.role调用本类的role属性,super.role调用父类的role属性。