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