返回类型和多继承?

返回类型和多继承?

问题描述:

interface i1{ 
    int test(); 
} 

interface i2{ 
    String test(); 
} 

class Test implements i1,i2{ 
    <Return type> test(){ 
     //code here 
    } 
} 

如果实现的方法的返回类型为INT,错误说返回类型与i2.test()不相容 如果实现的方法的返回类型为字符串,错误说返回类型与不相容i1.test()返回类型和多继承?

我应该如何落实在我班上的两个接口测试

任何帮助APPR eciable。

+0

见http://*.com/questions/2598009/method -name-collision-in-interface-implementation-java – nos 2012-03-20 18:27:56

你不能。它们不兼容。在这种情况下只考虑方法名称和参数。

你的选择是:

  1. 变化的方法之一的名称
  2. 让不同的参数列表包含不同类型

我应该如何实现这两个接口在我的课测试

要么实现它们在两个不同的类,或重命名(或更改参数签名)的接口方法之一。

+0

是不是可以通过任何方式在一个类中实现? – 2012-03-20 18:27:19

+0

@Chandra Sekhar:没有。 – 2012-03-20 21:03:01

这是不可能通过只填写解决这个一些适当的返回类型。

你必须找到一个替代解决方案;例如在其中一个接口中重命名test方法。

这将永远不会奏效,你必须找到一个alternative.ie重命名方法或U可以提供内部类实现如下

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(); 
    } 



} 



}