继承的getter and setter

楼主: ripple0129 (perry tsai)   2016-03-05 22:04:48
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很严重吗?
请问有什么解法
作者: cha122977 (CHA)   2016-03-05 22:26:00
在Son的constructor加上setNum(200);就好了
楼主: ripple0129 (perry tsai)   2016-03-05 22:26:00
感激不过这样修改的会是Father的number不是吗?想通了XD
作者: ssccg (23)   2016-03-05 23:30:00
继承就是为了不用每个子类都写一次,一开始就不该有son的
作者: cha122977 (CHA)   2016-03-06 00:12:00
你要用的Father的成员变量,何必在Son再来一次呢XD
作者: jtorngl (Pedrosa go!)   2016-03-06 10:07:00
考SCJP的题目之类的吧,你就在Son 一样宣告getter/setteroverride的method,然后return super.xxx 或 this.xxx实务上通常不会在子类别重复宣告相同名称的field

Links booklink

Contact Us: admin [ a t ] ucptt.com