【发布时间】:2012-03-17 19:36:38
【问题描述】:
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方法,所以系统会根据需要自动执行,我不能停下来调用它。
【问题讨论】:
-
一个简化的具体例子——以及语法正确的代码——会增加你得到满意答案的几率。