子类继承父类后,子类访问父类属性

Andrew Cap 2015-06-06 11:13:50
一个新手问题。。搜索了好久没找到答案。。。


public class Fighter {
public int role=5;
}



一个类继承了它


public class Card extends Fighter {
public Card(){
role=3;
System.out.println(super.role);//为何这句话输出的是3而不是5??
}


子类构造函数中对role进行操作,然后输出语句为何输出的是3而不是5?



public class Card extends Fighter {
public int role;
public Card(){
role=3;
System.out.println(super.role);//输出5
}


为何覆盖了role属性之后 输出就正确了。
...全文
269 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
box_xxx 2015-06-07
  • 打赏
  • 举报
回复
引用 1 楼 finemi的回复:
我现在看到新帐号并且还是qqXXXX的就怕了,,,直觉告诉我不会结贴 子类继承父类后,就拥有了父类所有成员,当子类中没有和父类同名的属性时,this.role还是super.role 都是一个东西。 属性不能被重写也不能被覆盖,不过这也是相对的。 当子类中有和父类中同名的属性时,this.role调用本类的role属性,super.role调用父类的role属性。
这和是临时变量还是成员变量也有关系吧?
Andrew Cap 2015-06-06
  • 打赏
  • 举报
回复
申请很久了。。一直没用过。。
finemi 2015-06-06
  • 打赏
  • 举报
回复
我现在看到新帐号并且还是qqXXXX的就怕了,,,直觉告诉我不会结贴 子类继承父类后,就拥有了父类所有成员,当子类中没有和父类同名的属性时,this.role还是super.role 都是一个东西。 属性不能被重写也不能被覆盖,不过这也是相对的。 当子类中有和父类中同名的属性时,this.role调用本类的role属性,super.role调用父类的role属性。

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧