我正在学习编程中的继承,我想知道在每个子类中是否应该编写覆盖实例变量的getter和setter,还是只使用来自抽象父类的继承的getter和setter。
在每个子类中编写继承变量的getter和setter是否会导致糟糕的代码?
我正在学习编程中的继承,我想知道在每个子类中是否应该编写覆盖实例变量的getter和setter,还是只使用来自抽象父类的继承的getter和setter。
在每个子类中编写继承变量的getter和setter是否会导致糟糕的代码?
如果你不需要子类中的特殊行为,那么它会起作用。
假设:
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
}
}
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);
}
}