我有一个抽象类,我希望子类能够覆盖它。我需要确保此方法的每个覆盖在开始时都具有相同的特定代码行,例如:
abstract void method();
以后
@Override
void method() {
// mandatory line of code
// do stuff here
}
我不喜欢这种天真的方法,因为它不是一个硬性要求,即理论上可以在没有该线的情况下进行覆盖。我也在考虑这样做:
public void wrapper() {
// mandatory line of code goes here
method();
}
abstract void method();
我也不喜欢这样,因为我只想从外面打电话给wrapper()
而不是method()
,所以method
是有意义的私有,但它默认是公开的(因为它是抽象的)。有更简洁的方式吗?或者我应该将它作为必须包含强制性代码行的前提条件,否则会得到未定义的行为?