子类中的获取器和设置器

时间:2018-10-14 18:19:56

标签: java inheritance getter-setter

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

在每个子类中为继承的变量编写getter和setter方法是不好的代码吗?

2 个答案:

答案 0 :(得分: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
   }
}

答案 1 :(得分:0)

假设我们有一个通用类Number,它可以接受任何数值,但是我们想使用Number类实现两个不同的类,例如PositiveNumber和NegativeNumber,则可以覆盖setter方法并强制数字集始终为正数或否定,取决于覆盖的类别。

returnKeyType="go"