在Java中,super.super.method()
是不允许的,因为它违反了Java的语言规范。在Java中,我们使用super
关键字来调用父类的构造方法或方法,但是我们不能使用super
关键字来调用父类的父类的方法。
如果你需要调用父类的父类的方法,你可以考虑使用接口和组合来实现。在这种情况下,你可以创建一个接口,该接口包含你想要调用的方法,然后在你的类中实现该接口。这样,你可以在你的类中调用该方法,而不需要使用super.super.method()
。
例如,假设你有一个类GrandParent
,它有一个方法method()
,你想要在一个子类中调用这个方法。你可以这样做:
public interface MyInterface {
void method();
}
public class Parent implements MyInterface {
public void method() {
// Parent class implementation
}
}
public class Child extends Parent {
public void method() {
// Child class implementation
}
public void callGrandParentMethod() {
((MyInterface)this).method();
}
}
在这个例子中,我们创建了一个名为MyInterface
的接口,它包含一个名为method()
的方法。然后,我们创建了一个名为Parent
的类,它实现了MyInterface
接口,并提供了method()
的实现。最后,我们创建了一个名为Child
的类,它继承了Parent
类,并提供了自己的method()
实现。我们还在Child
类中添加了一个名为callGrandParentMethod()
的方法,该方法调用了MyInterface
接口中的method()
方法,这实际上是调用了GrandParent
类中的method()
方法。
这种方法允许你在不使用super.super.method()
的情况下调用父类的父类的方法。
领取专属 10元无门槛券
手把手带您无忧上云