我想在super上递归调用一个方法,用于传播调用最后一个超类的方法。这个伪代码告诉我想做什么,但当然这不是用Java编译的。
public MyClass {
protected void method() {
// do something on this level
if (super instanceof MyClass) {
MyClass superLevel = (MyClass) super;
superLevel.method();
}
}
}
怎样才能实现这种行为?
答案 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()
。