Java 如何从父方法返回子方法?

Java 如何从父方法返回子方法?,java,oop,Java,Oop,请不要建议在父类中使用布尔标志类的东西,并在子类中进行检查。实际上,子类将被其他开发人员使用,我不希望他们关心任何这样的情况,所以我希望退出父类本身 我完全知道这违反了oops的抽象原则,但我需要违反 更新 PS:调用myMethod()不在子级或父级的控件中,因此无法创建一个单独的方法,如一个答案中所述。 实际上是它的API方法,所以系统会根据需要自动执行它,我不能停下来调用它。您可能正在寻找[或它的一些变体] 用户将覆盖受保护的方法myTemplateMethod(),并且不会覆盖myMet

请不要建议在父类中使用布尔标志类的东西,并在子类中进行检查。实际上,子类将被其他开发人员使用,我不希望他们关心任何这样的情况,所以我希望退出父类本身

我完全知道这违反了oops的抽象原则,但我需要违反

更新

PS:调用myMethod()不在子级或父级的控件中,因此无法创建一个单独的方法,如一个答案中所述。
实际上是它的API方法,所以系统会根据需要自动执行它,我不能停下来调用它。

您可能正在寻找[或它的一些变体]

用户将覆盖受保护的方法
myTemplateMethod()
,并且不会覆盖
myMethod()

myMethod()
将调用
super.myMethod()
[它没有被覆盖,因此实际上会立即调用super],并且super将调用[如果满足条件]
myTemplateMethod()

类似于[伪代码]的东西:

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
  }
}

您可能正在寻找[或它的一些变体]

用户将覆盖受保护的方法
myTemplateMethod()
,并且不会覆盖
myMethod()

myMethod()
将调用
super.myMethod()
[它没有被覆盖,因此实际上会立即调用super],并且super将调用[如果满足条件]
myTemplateMethod()

类似于[伪代码]的东西:

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
  }
}

回答得很好。我认为可能的解决方案是创建一个只从父级调用的不同方法。爱投票吧,但不能接受作为答案。想知道为什么吗??请查看更新的问题。@ShailendraRajawat:我阅读了编辑,API方法仍然是
myMethod()
,被重写的
myTemplateMethod()
将仅从超级用户的
myMethod()
调用。由于模板方法模式的使用,API根本没有改变,唯一改变的是子类将重写
myTemplateMethod()
,而不是
myMethod()
。调用仍然需要使用
myMethod()
.Agree。似乎我提供相同名称myMethod()的梦想无法实现。谢谢你的努力。使用这个解决方案。回答得很好。让我知道可能的解决方案可能是创建一个只从父级调用的不同方法。爱投票吧,但不能接受作为答案。想知道为什么吗??请查看更新的问题。@ShailendraRajawat:我阅读了编辑,API方法仍然是
myMethod()
,被重写的
myTemplateMethod()
将仅从超级用户的
myMethod()
调用。由于模板方法模式的使用,API根本没有改变,唯一改变的是子类将重写
myTemplateMethod()
,而不是
myMethod()
。调用仍然需要使用
myMethod()
.Agree。似乎我提供相同名称myMethod()的梦想无法实现。谢谢你的努力。使用此解决方案。一个简化的具体示例——以及语法正确的代码——将增加您获得满意答案的几率。一个简化的具体示例——以及语法正确的代码——将增加您获得满意答案的几率。