作者ripple0129 (perry tsai)
看板java
标题继承的getter and setter
时间Sat Mar 5 22:04:48 2016
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很严重吗?
请问有什麽解法
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 1.171.213.96
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/java/M.1457186691.A.081.html
1F:→ cha122977: 在Son的constructor加上setNum(200);就好了 03/05 22:26
2F:→ ripple0129: 感激 03/05 22:26
3F:→ ripple0129: 不过这样修改的会是Father的number不是吗? 03/05 22:31
4F:→ ripple0129: 想通了XD 03/05 22:55
5F:→ ssccg: 继承就是为了不用每个子类都写一次,一开始就不该有son的 03/05 23:30
6F:→ cha122977: 你要用的Father的成员变数,何必在Son再来一次呢XD 03/06 00:12
7F:推 jtorngl: 考SCJP的题目之类的吧,你就在Son 一样宣告getter/setter 03/06 10:07
8F:→ jtorngl: override的method,然後return super.xxx 或 this.xxx 03/06 10:07
9F:→ jtorngl: 实务上通常不会在子类别重覆宣告相同名称的field 03/06 10:09