gpt4 book ai didi

Java:如何在重写方法(祖 parent 方法)中调用 super().super()

转载 作者:行者123 更新时间:2023-12-02 01:06:51 25 4
gpt4 key购买 nike

Possible Duplicate:
Why is super.super.method(); not allowed in Java?

我有 3 个类,它们相互继承,如下所示:

A

B

C

在每个类中我都有以下方法:

protected void foo() {
...
}

类内C我要调用foo来自类(class)A无需调用fooB :

protected void foo() {
// This doesn't work, I get the following compile time error:
// Constructor call must be the first statement in a constructor
super().super().foo();
}

编辑
一些上下文信息:
B类是我们实际使用的类。 C类是一个单元测试类,它有一些修改。 foo里面的方法B做了一些我们不想要的事情,所以我们在 C 中覆盖它。然而foo上课A很有用,需要调用。

最佳答案

  • 要调用父类(super class)中的方法,请使用 super.foo() ,不是super().foo()super()调用父类的构造函数。
  • 无法调用super.super.foo() 。您可以添加调用super.foo()在B类中,以便调用super.foo()在 C 中,将调用 super.foo()在 B 中,它又会调用 foo()在 A 中。

关于Java:如何在重写方法(祖 parent 方法)中调用 super().super(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57722681/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com