Class parent {
protected void myMethod() {
if(someCodition) {
//return this as well as child's myMethod.
}
}
Class child extends Parent {
@override
protected void myMethod() {
super.myMethod();
//code below this line should not execute if someCondition.
//want parent to handle all this
}
}
請不要建議在父類中帶一些布爾標誌類的東西,並在子類中檢查它。其實兒童班將被其他開發者使用,我不希望他們照顧任何這樣的條件,所以想從父母本身退出。如何從父方法返回一個子方法?
我完全意識到它違反了oops的抽象原則,但它違反了我的要求。
更新
PS:調用myMethod的()不在任一兒童或父母的控制,以在一個答案提到不能創建一個單獨的方法。 實際上它的API和方法,所以系統會根據需要自動執行它,我不能停下來調用它。
一個簡化的具體示例 - 以及語法正確的代碼 - 會提高您得到滿意答案的機率。 – 2012-03-17 13:14:25