我只是在学习编程中的继承,我想知道您是否应该为每个子类中的实例变量编写重写的getter和setter,还是只使用抽象父类中的继承者。
在每个子类中为继承的变量编写getter和setter方法是不好的代码吗?
答案 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"