在Java 8中使用具有相同签名的两个默认方法实现两个接口

在Java 8中使用具有相同签名的两个默认方法实现两个接口,第1张

在Java 8中使用具有相同签名的两个默认方法实现两个接口

这是一个编译时错误。您不能从两个接口获得两个实现。

但是,如果在中实现该

getGreeting
方法,则是正确的
C1

public class C1 implements I1, I2 // this will compile, bacause we have overridden getGreeting(){    public static void main(String[] args)    {        System.out.println(new C1().getGreeting());    }    @Override public String getGreeting()    {        return "Good Evening!";    }}

我只想补充一点,即使I1中的方法是抽象的,而I2中的方法是默认的,您也无法实现它们两者。因此,这也是一个编译时错误:

public interface I1{    String getGreeting();}public interface I2{    default String getGreeting() {        return "Good afternoon!";    }}public class C1 implements I1, I2 // won't compile{    public static void main(String[] args)    {        System.out.println(new C1().getGreeting());    }}


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5600524.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-15
下一篇2022-12-15

发表评论

登录后才能评论

评论列表(0条)

    保存