在super上递归调用函数

时间:2013-08-27 08:57:37

标签: java inheritance superclass super

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

public MyClass {

    protected void method() {

        // do something on this level

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

怎样才能实现这种行为?

2 个答案:

答案 0 :(得分: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();
    }
}

你可以在一系列课程中使用它。

答案 1 :(得分:1)

在你可以编辑所有这些类之前,你不能直接这样做。直接只有直接父母的方法可以在上面使用。

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