gpt4 book ai didi

java - 如果两个接口(interface)包含相同的默认方法会怎样?

转载 作者:搜寻专家 更新时间:2023-10-31 19:54:41 25 4
gpt4 key购买 nike

如果我有两个具有相同默认方法的接口(interface),并且都使用一个类来实现/请参阅此程序。

interface alpha {
default void reset() {
System.out.println("This is alpha version of default");
}
}

interface beta {
default void reset() {
System.out.println("This is beta version of default");
}
}

class MyClass implements alpha, beta {
void display() {
System.out.println("This is not default");
}
}

class main_class {
public static void main(String args[]) {
MyClass ob = new MyClass();
ob.reset();
ob.display();
}
}

然后会发生什么?而且我还遇到了与该程序无关的错误。

最佳答案

You cannot implement multiple interfaces having same signature of Java 8 default methods (without overriding explicitly in child class)

.您可以通过实现方法来解决它,例如

class MyClass implements alpha, beta {
void display() {
System.out.println("This is not default");
}

@Override
public void reset() {
//in order to call alpha's reset
alpha.super.reset();
//if you want to call beta's reset
beta.super.reset();

}
}

关于java - 如果两个接口(interface)包含相同的默认方法会怎样?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27649002/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com