子类中的 getter 和 setter

我只是在学习编程中的继承,我想知道您是否应该为每个子类中的实例变量编写覆盖的 getter 和 setter,或者您是否只使用从抽象父类中继承的那个。

为每个子类中的继承变量编写 getter 和 setter 是不是很糟糕的代码?


素胚勾勒不出你
浏览 134回答 2
2回答

呼啦一阵风

是的,如果您不需要子类中的特殊行为,它会这样做。认为: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   }}

慕神8447489

假设我们有一个通用类 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);    }}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java