2011-05-22 52 views
0

如果在抽象基類中有公共/私有方法m1和抽象方法m2,如何使方法m1在子類中實現的方法m2之前執行。 (基本上我試圖把在M1一些基本的驗證)Java調用方法'不明確'

回答

0

類似這樣的:

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

在基礎類,你可以把一個方法是你爲這個方法API的切入點

public void mCaller() { 
    m1(); 
    m2(); 
} 

然後使用mCaller而不是直接撥打m1m2。您還可以更改m1m2方法的可見性。