如何在不更改所有派生类的情况下调用基类方法

Ash*_*sha 2 java oop

我有一个名为的类Base,它有一个名为的方法execute().大约有100个类派生自这个基类并提供它们自己的实现execute().现在,我有一些我想要提出的常见逻辑Base.SomeMethod().需要在结束时调用此方法execute().我的问题是,是否可以在不改变每个派生类的execute()方法的情况下调用它?

Jef*_*rey 7

public class Base {
    public final void execute() {
        doExecute();
        someMethod();
    }

    protected abstract void doExecute();

    public void someMethod() {
    }
}
Run Code Online (Sandbox Code Playgroud)

此解决方案可防止超级代码气味.