【发布时间】:2017-01-30 14:26:09
【问题描述】:
如果我有一个超类 BaseClass 和一个子类 SubClass,并且我希望子类的某些功能稍有不同,那么只覆盖原来的、调用 super 并添加一些额外功能是不是不好的做法?
例如:(伪代码)
public class BaseClass{
int fooA();
int fooB();
int fooC();
}
public class SubClass extends BaseClass{
@Override
int fooB(){
int temp = super.fooB();
temp += 1;
return temp;
}
@Override
int fooC(){
System.out.println("I'm doing something extra in fooC!");
return super.fooC();
}
}
我试图防止代码重复,但我觉得我做错了什么或忘记了一些基本的 OOP 内容,所以我想我会问这是否是不好的做法。自从我做继承以来已经有一段时间了;感谢您的任何见解。
【问题讨论】:
-
组合优于继承。
-
@Kayaman 您不能只说“更喜欢组合而不是继承”,就像它总是正确的那样。在某些情况下,组合比继承更合适,而在其他情况下,继承比组合更合适。
-
我已经有一段时间没有做继承了。 :)
-
@MickaëlB 当然可以,我刚刚做到了。 prefer 这个词本身就包含了您提到的所有其他注意事项。
标签: java inheritance overriding subclass