例如
interface TestInterFaceA {
int methodA();
}interface TestInterFaceB extends TestInterFaceA {
void methodA();
}public class InterFaceTest implements TestInterFaceA, TestInterFaceB {

       #public void methodA(){}

}
#号处会报错,说返回类型不合法。是否说明,不能implements 拥有2个同名且返回类型不同的interface。
如果可以这么做,需要怎么改才能通过编译?

解决方案 »

  1.   

    public interface InterfaceA { int method();
    }
    public interface InterfaceB extends InterfaceA{ void method();   //嗯,在这儿就应该报错了吧!违反了重写的原则
    }
      

  2.   

    如果参数名和参数都相同叫做“重复”,有歧义,编译不能。如果只是方法名相同 可以用overload形式overload是方法名相同 参数类型、顺序、数量不同。与返回类型无关。
      

  3.   


    interface TestInterFaceB extends TestInterFaceA { 
    void methodA(); 

    会报错呀
      

  4.   

    例子发错应该是:
    interface TestInterFaceA {
    int methodA();
    }interface TestInterFaceB {
    void methodA();
    }public class InterFaceTest implements TestInterFaceA, TestInterFaceB {
    #public void methodA(){}
    }这种情况,在#处会报错。 那么是不是一个类不能去同时实现拥有相同方法名(包括参数列表)但不同返回值的接口?
      

  5.   

    interface TestInterFaceA { 
    int methodA(); 
    } interface TestInterFaceB { 
    void methodA(); 
    } 除了返回值不一样,其他都一样 在类中实现接口的方法时,方法的名字 返回值类型 参数个数及类型必须与接口中的完全一致
      

  6.   

    搂住应该看一下 java overload的概念