要求在抽象方法的每次重写开始时完成相同的操作

时间:2017-12-25 12:04:44

标签: java oop inheritance abstract-class

我有一个抽象类,我希望子类能够覆盖它。我需要确保此方法的每个覆盖在开始时都具有相同的特定代码行,例如:

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是有意义的私有,但它默认是公开的(因为它是抽象的)。有更简洁的方式吗?或者我应该将它作为必须包含强制性代码行的前提条件,否则会得到未定义的行为?

0 个答案:

没有答案