class Father1 {
private int number = 0;
public int getNum() {
return number;
}
public void setNum(int number) {
this.number = number;
}
}
class Son1 extends Father1 {
private int number = 200;
}
public class TestPolymorphismEx11 {
public static void main(String[] args) {
Father1 a = new Son1();
System.out.println(a.getNum());
}
}
//run完結果為0
想請問如何繼承Father的getter setter方法來存取Son的屬性
我思考是private是同class下才能存取,也就是必定要做Son的getter跟setter。
但如果Son有大量時每個都設置不是DRY很嚴重嗎?
請問有什麼解法
在Son的constructor加上setNum(200);就好了
感激不過這樣修改的會是Father的number不是嗎?想通了XD
作者:
ssccg (23)
2016-03-05 23:30:00繼承就是為了不用每個子類都寫一次,一開始就不該有son的
你要用的Father的成員變數,何必在Son再來一次呢XD
作者:
jtorngl (Pedrosa go!)
2016-03-06 10:07:00考SCJP的題目之類的吧,你就在Son 一樣宣告getter/setteroverride的method,然後return super.xxx 或 this.xxx實務上通常不會在子類別重覆宣告相同名稱的field