首页 > Java > java教程 > 正文

当默认方法在类中被重写时,如何在 Java 中显式调用默认方法的实现?

Mary-Kate Olsen
发布: 2024-11-16 04:34:03
原创
571 人浏览过

How do you invoke a default method's implementation explicitly in Java when it's overridden in a class?

在 Java 中显式调用默认方法

Java 8 引入了默认方法作为扩展接口而不破坏现有实现的一种方式。但是,当方法的默认实现被重写或与其他默认实现冲突时,如何调用该方法的默认实现?

在提供的代码中,foo() 方法被定义为 A 接口中的默认方法并被重写在B类中。要访问 B 类中 A.foo() 的默认实现,您可以使用以下语法:

A.super.foo();
登录后复制

这允许您调用默认实现,即使它已被覆盖。需要注意的是,A.super引用指的是A接口类型,而不是B类对象。

public class ChildClass implements A, C {
    @Override
    public void foo() {
        // Override the default implementation
        System.out.println("ChildClass.foo()");
    }

    public void callDefault() {
        // Invoke the A.foo() default implementation
        A.super.foo();
        // Invoke the C.foo() default implementation
        C.super.foo();
    }
}
登录后复制

在这个例子中,ChildClass同时实现了A和C接口,每个接口都有自己的默认 foo() 方法。通过使用 A.super.foo() 和 C.super.foo(),可以显式访问默认实现,从而允许特定行为或冲突解决。

以上是当默认方法在类中被重写时,如何在 Java 中显式调用默认方法的实现?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板