1

我想在 super 上递归调用一个方法,以将调用的方法传播到最后一个超类。这个伪代码告诉我想做什么,但当然这不能用 Java 编译。

public MyClass {

    protected void method() {

        // do something on this level

        if (super instanceof MyClass) {
            MyClass superLevel = (MyClass) super;
            superLevel.method();
        }
    }
}

如何实现这种行为?

4

2 回答 2

3

您可以使用:

public class MySuperClass {
    protected void method() {
         // Whatever you want to do in super class
    }
}

public class MyClass extends MySuperClass {
    @Override
    protected void method() {
         // Whatever you want to do in this specific class

         // Call super.method
         super.method();
    }
}

您可以在一系列类中以这种方式使用它。

于 2013-08-27T09:01:51.510 回答
1

在您也可以编辑所有这些类之前,您不能直接这样做。直接只能使用直接父级的方法,不能高于此。

如果您可以编辑父母,那么请super.method()在每个级别上调用。

于 2013-08-27T09:01:40.687 回答