当前位置: 首页 > 面试题库 >

父类可以调用子类方法吗?

商开济
2023-03-14
问题内容

指这里

A是预编译的Java类(我也有源文件)B是我正在编写的Java类 B扩展了A。

如何实现逻辑,以便A可以调用B拥有的方法
以下是条件:

  • 我不想触摸A(尽管没有其他解决方案,但这只是最后一个选择)。
  • 我不想使用反射。

如前所述,如果需要,我可以修改A。哪种方式可能是可行的解决方案?


问题答案:

A应该定义将要调用的方法(可能是抽象方法,根据Paul Haahr的出色指南,A应该是抽象类);B可以(实际上是具体的,如果方法是抽象的)则覆盖这些方法。现在,A当发生在类B的实例中时,从中的其他方法调用这些方法,请转到B的替代。

总体设计模式称为“
模板方法”;被覆盖的方法通常称为“挂钩方法”,执行调用的方法称为“组织方法”。



 类似资料:
  • 我有3个子类,每个都有唯一的ImagePath。 因此,我实现了,因为所有实例共享相同的映像。 问题就在这里。我想从父实例调用子静态方法。 当然,我可以使用调用基于类的静态方法。 假设我有10个子类,使用if-else语句并逐个调用它并不容易。 在Java中有没有办法从父实例调用子静态方法??

  • 问题内容: 在Python中创建简单的对象层次结构时,我希望能够从派生类中调用父类的方法。在Perl和Java中,有一个用于此的关键字()。在Perl中,我可以这样做: 在Python中,似乎必须从子代中明确命名父类。在上面的示例中,我将不得不执行。 这似乎不正确,因为这种行为使创建深层次结构变得困难。如果孩子们需要知道哪个类定义了一个继承的方法,那么就会造成各种各样的信息痛苦。 这是python

  • 问题内容: 我有以下课程 这只是我实际架构的简化版本。最初,我不知道需要创建的人员类型,因此处理这些对象创建的函数将常规对象作为参数。 现在,我想使用此父类对象访问子类的方法。我还需要不时访问父类方法,所以 我不能 使其 抽象 。 我想我在上面的示例中简化太多了,所以这是实际的结构。 if语句显示“无法为QuestionOption找到getMultiple”。OuestionOption具有更多

  • 本文向大家介绍C#中子类调用父类的实现方法,包括了C#中子类调用父类的实现方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C#中实现子类调用父类的方法,分享给大家供大家参考之用。具体方法如下: 一、通过子类无参构造函数创建子类实例 创建父类Person和子类Student。 在客户端通过子类无参构造函数创建子类实例。 输出结果: 可见:通过调用子类无参构造函数创建子类实例,会默认调用父

  • 问题 你想在子类中调用父类的某个已经被覆盖的方法。 解决方案 为了调用父类(超类)的一个方法,可以使用 super() 函数,比如: class A: def spam(self): print('A.spam') class B(A): def spam(self): print('B.spam') super().spam()

  • 我已经创建了一个子组件,它有一个我想调用的方法。 当我调用这个方法时,它只触发行,它不会设置属性?? 下面是快速启动的Angular应用程序和我的更改。 家长 孩子 如何设置属性?