首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么是super.super.method(); Java不允许?

在Java中,super.super.method() 是不允许的,因为它违反了Java的语言规范。在Java中,我们使用super关键字来调用父类的构造方法或方法,但是我们不能使用super关键字来调用父类的父类的方法。

如果你需要调用父类的父类的方法,你可以考虑使用接口和组合来实现。在这种情况下,你可以创建一个接口,该接口包含你想要调用的方法,然后在你的类中实现该接口。这样,你可以在你的类中调用该方法,而不需要使用super.super.method()

例如,假设你有一个类GrandParent,它有一个方法method(),你想要在一个子类中调用这个方法。你可以这样做:

代码语言:java
复制
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()的情况下调用父类的父类的方法。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

-

取代华为的,为什么是vivo?

1分34秒

为什么万物皆可NFT?为什么有的NFT是一个有的是多个呢?

4分45秒

013为什么说未来系统是linux

1.4K
11分16秒

142_AQS之为什么是JUC框架基础

30分9秒

7.什么是缓存行?为什么会有缓存行?

19分44秒

第14章:垃圾回收概述/135-什么是GC,为什么需要GC

7分15秒

产业安全专家谈 | 主机安全为什么是企业上云的「必需品」?

7分36秒

Java零基础-131-为什么要使用循环

7分19秒

Java零基础-229-为什么画内存图

9分10秒

Java零基础-297-为什么要instanceof判断

7分14秒

Java零基础-296-为什么要instanceof判断

2分32秒

003 - Java入门极速版 - 基础概念 - Java是方言

领券