2 回答

TA貢獻1802條經驗 獲得超6個贊
是的,如果您不需要子類中的特殊行為,它會這樣做。
認為:
class A {
private String val;
public String getVal() { return this.val }
public void setVal(String newValue) { this.val = newValue }
}
class B extends A {
// you already have access to getVal & setVal here, so it's useless to override them here
}
class C extends A {
private String valCopy;
@Override
public void setVal(String newValue) {
super(newValue);
this.valCopy = newValue
// new behavior so here it's ok to override
}
}

TA貢獻1780條經驗 獲得超1個贊
假設我們有一個通用類 Number 可以接受任何數值,但我們想使用 Number 類實現兩個不同的類,例如 PositiveNumber 和 NegativeNumber,我們可以重寫 setter 方法并強制數字集始終為正數或負數,具體取決于被覆蓋的類。
public class Number {
private int num;
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
}
public class PositiveNumber extends Number {
@Override
public void setNum(int num) {
super.setNum(num > 0 ? num : -num);
}
}
public class NegativeNumber extends Number {
@Override
public void setNum(int num) {
super.setNum(num > 0 ? -num : num);
}
}
添加回答
舉報