亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

為什么我在子類中修改父類的屬性值,子類屬性值也一同修改?

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值也改變???

正在回答

2 回答

屬性是不能被覆蓋或者重寫的。

所以無論是this.role還是super.role 訪問的都是同一個屬性。

你對這個屬性進行了操作 當然會出現這種情況。

如果子類中有和父類同名的屬性時候,this.role和super.this才會有區別。


0 回復 有任何疑惑可以回復我~
#1

好鬼過癮 提問者

非常感謝!
2015-07-23 回復 有任何疑惑可以回復我~
#2

dongbian

是不是可以說:在 Fighter中改了父類屬性的值,只影響了子類,并不影響父類。??
2016-01-29 回復 有任何疑惑可以回復我~

子類繼承父類的非私有屬性,所以當你重新定義了父類中的屬性時,再次調用時肯定顯示修改后的值

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

為什么我在子類中修改父類的屬性值,子類屬性值也一同修改?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號