Java调用一个方法';莫名其妙地';

Java调用一个方法';莫名其妙地';,java,Java,如果在一个抽象基类中,有一个公共/私有方法m1和一个抽象方法m2,我如何使方法m1在子类中实现的方法m2之前执行。(基本上,我试图在m1中放置一些基本验证)在基类中,您可以将一个方法作为该方法的API的入口点: public void mCaller() { m1(); m2(); } 然后使用mCaller而不是直接调用m1和m2。您还可以更改m1和m2方法的可见性。类似以下内容: public abstract class Base { public boo

如果在一个抽象基类中,有一个公共/私有方法m1和一个抽象方法m2,我如何使方法m1在子类中实现的方法m2之前执行。(基本上,我试图在m1中放置一些基本验证)

在基类中,您可以将一个方法作为该方法的API的入口点:

 public void mCaller() {
     m1();
     m2();
 }
然后使用
mCaller
而不是直接调用m1m2。您还可以更改m1m2方法的可见性。

类似以下内容:

public abstract class Base {
    public boolean m1() {
        // validation stuff
    }
    public final void m2() {
        if (m1()) {
            m2Imp();
        }
    }
    protected abstract void m2Imp();
}