為什么我在子類中修改父類的屬性值,子類屬性值也一同修改?
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);
}
}
輸出結(jié)果為:
1 super role: 5
1 figher role:5
2 figher role:3
2 super role: 3
Fighter繼承Card,我修改super.role的值,會導(dǎo)致子類的role值也改變???
2015-06-06
屬性是不能被覆蓋或者重寫的。
所以無論是this.role還是super.role 訪問的都是同一個屬性。
你對這個屬性進(jìn)行了操作 當(dāng)然會出現(xiàn)這種情況。
如果子類中有和父類同名的屬性時候,this.role和super.this才會有區(qū)別。
2015-06-06
子類繼承父類的非私有屬性,所以當(dāng)你重新定義了父類中的屬性時,再次調(diào)用時肯定顯示修改后的值