gpt4 book ai didi

Java 8 由于多重继承而无法实现两个接口(interface)

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:01:06 24 4
gpt4 key购买 nike

我有两个契约(Contract)(接口(interface))都有默认方法,名称相同但返回类型不同。

我必须创建一个类来实现这两个契约。如果我尝试这样做,则会出现编译错误。

我无法更改 Cotract1 的默认方法,因为许多类都在实现 Contract1 并且与 Contract2 相同。

无论如何我可以编写应该​​具有这两个接口(interface)的实现的类,而无需更改接口(interface)中的任何内容。

下面是一段代码:

interface Contract1 {
default String getVersion() {
return "Beta_10.2.3";
}
//....
}
interface Contract2 {
default Double getVersion() {
return 11.2;
}
//....
}
public class ContractsImplementation implements Contract1, Contract2{

}

最佳答案

建议:

Sanjay,如果你不想像你一样在你的类中有任何默认方法said ,使用组合而不是继承。

interface Contract1 {
default String getVersion() {
return "Beta_10.2.3";
}
//....
}
interface Contract2 {
default Double getVersion() {
return 11.2;
}
//....
}
public class ContractsImp {

private class Contract1Imp implements Contract1 {}
private class Contract2Imp implements Contract2 {}

private Contract1 contract1 = new Contract1Imp();
private Contract2 contract2 = new Contract2Imp();
// Here you can do with contracts whatever you want
// ...
}

关于Java 8 由于多重继承而无法实现两个接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52848491/

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