interface i1{
int test();
}
interface i2{
String test();
}
class Test implements i1,i2{
<Return type> test(){
//code here
}
}
如果实施方法的返回类型为 int ,则错误显示返回类型与i2.test()不兼容 如果实现方法的返回类型为字符串,则错误显示返回类型与i1.test()不兼容
我应该如何在班级测试
中实现这两个界面任何帮助都很明显。
答案 0 :(得分:8)
你做不到。他们是不相容的。在这种情况下,只考虑方法名称和参数。
您的选择是:
答案 1 :(得分:1)
我应该如何在我的类Test
中实现这两个接口
在两个不同的类中实现它们,或者重命名(或更改参数签名)其中一个接口方法。
答案 2 :(得分:0)
只能通过填写一些适当的返回类型来解决这个问题。
你必须找到另一种解决方案;例如,在其中一个接口中重命名test
方法。
答案 3 :(得分:0)
这将永远不会有效,你必须找到一个替代.i.e重命名方法或你可以提供内部类实现如下
class Test {
static i1 i=new i1() {
@Override
public int test() {
return 0;
}
};
static i2 i22=new i2() {
@Override
public String test() {
return "String";
}
};
public static void main(String...strings ){
if(someObject instanceof String){
i.test();
} else {
i22.test();
}
}
}