【发布时间】:2016-05-16 21:22:24
【问题描述】:
例如,我有很多类都需要某种方法。 在这个方法中,所有这些类都需要一行代码,方法的其余部分不同。
我怎样才能实现这样的目标:
void method(){
everybodyDoesThisStuff;
// more individual stuff
// more individual stuff
}
抽象方法不能有主体,如果你不把它抽象化,你就会重写该方法并丢失它。
【问题讨论】:
-
除了将everyoneDoesThisStuff 提取到您从
method()的每个覆盖器显式调用的方法中之外,没有任何真正好的方法可以做到这一点。 -
制作
individualStuff()和moreIndividualStuff()抽象方法并从method()调用它们。 -
@LouisWasserman 是的,这就是我目前正在做的事情,我只是想知道上面的事情是否可行。这样我就不必在 100 个不同的类中调用该方法。
-
您可以覆盖它,并且仍然可以 super.method() 从派生类中的父类访问该方法。
-
@MitchWeaver 真的吗?确切地?如果你忘记调用 super 怎么办?答案中有很多更好的方法。