gpt4 book ai didi

java - 接口(interface)如何支持多重继承

转载 作者:行者123 更新时间:2023-12-01 10:34:51 25 4
gpt4 key购买 nike

public  class Test implements X, Y { //X.Y interface are shown below        
public void myMethod() {
System.out.println(" Multiple inheritance example using interfaces");
}

public static void main(String[]args) {
Test t=new Test();
t.myMethod();
System.out.println(t.a); //compile time error ambigious field
}
}

请帮我解决这个问题

 interface X {
public void myMethod();
int a = 0;
}

interface Y {
int a = 9;
public void myMethod();
}

最佳答案

根据定义,接口(interface)中定义的任何变量都是public static final,换句话说,它只是一个常量,并不是真正的字段(因为接口(interface)中没有字段)。

因此,您得到的编译错误表明编译器不知道您引用的常量。

这里有两个选择:

  1. 更改其中一个接口(interface)中常量的名称,例如在接口(interface) Y 中声明 int b = 9;

  2. main方法中指向一个具体常量:System.out.println(X.a);

关于java - 接口(interface)如何支持多重继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34826665/

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