【问题标题】:How do I call an overridden method one level up in java?java - 如何在java中调用一个被覆盖的方法上一级?
【发布时间】:2010-07-29 20:49:11
【问题描述】:

我有一个抽象基类。 我有一个扩展基类的 class2。 我有一个扩展 class2 的 class3。 我在 class2 和 class3 中都覆盖了抽象 baseclass.method1。 在 class3.method1 中,我调用 super.method1,我得到的错误是我不能 直接调用基类中的抽象方法。 但我不想,我只想上一级,我想调用class2.method1,而不是baseclass.method1。 该怎么做?

【问题讨论】:

  • 看起来更像是“class2 extends BC”“class3 extends BC”,而不是“class3 extends class2”,所以你得到的正是你应该得到的。

标签: java abstract-class


【解决方案1】:

class3 中的.super() 应该调用class2 中定义的方法。

【讨论】:

    【解决方案2】:

    我撤回了这个问题,原来 class2 有一个错字,所以 method1 没有相同的名称。哎呀。

    【讨论】:

    • 啊,以前从来没有这样做过。似乎不是一个很好的理由。 “程序员打错字”似乎不存在。 :-)
    【解决方案3】:

    嗯,它应该工作。 Class3.method1() super调用Class2.method1,不明白问题__

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-01-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-16
      • 1970-01-01
      • 2018-12-27
      相关资源
      最近更新 更多