java父类可以调用子类方法吗?
指代here
A是一个预编译的Java类(我还有源文件)
B是我正在编写的Java类
B扩展A
如何实现逻辑,使A可以调用B拥有的方法
以下是条件:
- 我不想碰A(只是作为一个 最后一个选项是如果否 存在其他解决方案)李>
- 我不想使用反射李>
如前所述,如果需要,我可以修改A。 无论哪种方式,可能的解决方案是什么
你可以在下面搜索框中键入要查询的问题!
指代here
A是一个预编译的Java类(我还有源文件)
B是我正在编写的Java类
B扩展A
如何实现逻辑,使A可以调用B拥有的方法
以下是条件:
如前所述,如果需要,我可以修改A。 无论哪种方式,可能的解决方案是什么
# 1 楼答案
我很犹豫是否要这么做。如果我错了,请纠正我,然后我将删除,但听起来你想维护一个A对象和一个B对象。如果它们确实不是同一个物体,那么你必须要做的“捆绑在一起”(这是一个科学术语)将是非常丑陋的
# 2 楼答案
类
A
应该定义它将要调用的方法(根据Paul Haahr的优秀guide,可能是抽象类,A应该是抽象类)B
可以(实际上,如果方法是抽象的,那么必须是具体的)重写这些方法。现在,当在类B的实例中发生时,从A
中的其他方法调用这些方法,转到B的重写整体设计模式称为Template Method;要重写的方法通常称为“钩子方法”,执行调用的方法称为“组织方法”
# 3 楼答案
是的,如果覆盖超级/基类的函数,那么在中对这些函数的调用将转到子/派生类。在我看来,这似乎是一个糟糕的设计,但就是这样
显然,所有的
Derived
方法都必须在Base
中定义,但如果不这样做(没有内省),逻辑上是不可能的