interface Interface1 {
public void test();
}
 interface Interface2 {
public void test();
}
 class Test implements Interface1,Interface2 { public void test() {

}
 
 }
 //如果上面的代码是正确的话,Test实现的是Interfaced1还是Interface2里面的方法
 
 interface Interface1 {
public int test();
}
 interface Interface2 {
public void test();
}
 class Test implements Interface1,Interface2 { public void test() {

}
public int test() {
return 1;
}
 
 }//为什么报错,
 
 //非常晕乎 忘大虾几点一二拜谢!!1

解决方案 »

  1.   

    既是interface1的方法,也是interface2中的方法。和多接口没关系,是同一个类中同名同参数的方法不能有不同的返回类型
      

  2.   

    上面的代码是实现两个接口,下面的代码两个test()方法都是空参,跟本就是方法重复。方法重载和返回类型无关。只和参数的数目,名称,所属的数据类型和顺序有关。
    所以编译器会报错,它不知道要执行那个test()方法。
    呵呵……
    希望楼主可以理解!!!
      

  3.   

    第一种情况是同时实现两个接口的方法
    方法重载和返回类型无关比如说你在main方法中写了这样一句代码:
    test();那么计算机知道是调用public void test() 还是调用public int test() 呢?
    记住不要让计算机迷惑当计算机迷惑时那就证明是我们错了
      

  4.   

    你可能对方法的重载有点误解  重载方法是这样的
    1:方法名相同
    2:参数不同但是你看下你的方法  两个test方法里面的参数是一样的如果你现在要调用test方法的话  jvm怎么知道到底要调用哪个呢 
    它怎么知道要返回什么类型呢?
      

  5.   

    //如果上面的代码是正确的话,Test实现的是Interfaced1还是Interface2里面的方法
    你把每个方法后面都加个打印试试看就知道了,大概2个都调用吧
      

  6.   

    这个题是无解的题
    一个类实现两个不同的接口的时候,这两个接口不应该有方法签名相同的方法。
    当有的时候你只能写一个。(具体实现的是哪个也不好说)还有在类实现的时候你写的两个方法其实方法签名是一样的,在Java中是不允许这样写的即使返回值类型不同,那也是一个方法。似乎think  In java 也没说这个问题的解决办法。
    总之尽量不要写这样的代码
      

  7.   

    这个难道就是著名的Java要解决的多继承问题(Java只有单继承,无法完成多继承的任务)?曾经也遇到过由于两个接口中有同名的方法,无法通过实现接口完成接口中的功能。可以通过内部类去实现两个接口中的功能
      

  8.   

    第一种情况是实现接口,java规定实现一个接口必须实现接口定义的方法。符合规定
    第二种情况涉及到方法重载,java规定方法重载必须参数不一样。。
      

  9.   

    假设你是编译器,面对这样的代码你能解析得明白吗?
    如果可以也是编译器默认的,谁也不知道的实现。第二个。很明显出现逻辑错误,相同的方法,怎么可能有不同的返回类型。这本身就不符合Java的编程规范和语法。
      

  10.   

    回答已经够多了,大家说的已经很清楚了。
    1 同时实现了2个test()方法
    2 方法重载的概念再看一下。参数的类型或者个数不同,跟返回值没有关系