java:一个类实现的两个接口里都有同一个方法(名),怎么办?

如题所述

该接口只实现同一个方法一次就可以了。

接口只是对方法的定义,最终的实现还是再类中。因此如果过2个接口的方法一样,对类来说就是一个方法,不同接口类型使用同一个类方法。

比如接口IA,IB都定义了方法a,则如果类C实现这两个接口时,只需要实现一次方法a就可以了。

举例:

public class CClass implements IA,IC{
@Override
public void a() {
System.out.println("cc");

}
}

温馨提示:内容为网友见解,仅供参考
第1个回答  2008-09-18
如果两个接口属于继承关系比较简单,你实现的方法要根据子类接口的方法编写。如果两个接口不属于继承关系,就不太清楚了,我觉得需要同时编写两个对应的方法,当然这时是指两个方法的参数不同。但如果连方法的参数都相同,我就实在不知道了。LZ可以自己编一个小的测试程序试一下。
第2个回答  2008-09-18
仅仅是方法名一样,应该没有关系,根据参数的数量不同或类型不对可以做出区分.

如果连参数的数量和类型都一样,那么你只要重写一次就可以了.

怎么办是什么意思?

你调用接口的方法,事实上是调用了实现这个接口的类的方法.所以并不明白你的怎么办是什么意思.

你最好把你的想法更明确的说出来
第3个回答  推荐于2017-09-09
不可以,你编译不过去的。
====================
我测试,竟然可以? 呵呵呵!我去深度测试一下!

代码运行没问题

public class T implements I1, I2 {
  public static void main(String[] args) {
    I1 o1 = new T();
    o1.test();
    I2 o2 = (I2) o1;
    o2.test();
  }

  @Override
  public void test() {
    System.out.println("1234");
  }
}

interface I1 {
  public void test();
}

interface I2 {
  public void test();
}本回答被提问者采纳
第4个回答  2008-09-18
这完全符合逻辑,也存在这种情况
但如果在接口里定义的方法功能不是完全一样,
可以在方法具体实现的时候,在内部分别处理,来加以区分!

当然这不建议,尽量避免这种问题!
具体需求会有解决的办法!

java:一个类实现的两个接口里都有同一个方法(名),怎么办?
该接口只实现同一个方法一次就可以了。接口只是对方法的定义,最终的实现还是再类中。因此如果过2个接口的方法一样,对类来说就是一个方法,不同接口类型使用同一个类方法。比如接口IA,IB都定义了方法a,则如果类C实现这两个接口时,只需要实现一次方法a就可以了。举例:public class CClass implemen...

java中一个类 怎样实现2个接口有相同的方法名?
1、首先双击打开eclipse开发工具,新建一个Java项目,并创建java package。2、在对应的java package上,新建一个Java类GetMethods。3、打开文件类,定义方法buildData,并传入一个参数flag,根据flag返回不同的值。4、在main主函数中,调用getMethodName方法,并打印结果。5、保存代码并运行文件,可以查看控...

java中一个类 怎样实现2个接口有相同的方法名?
1、首先双击打开eclipse开发工具,新建一个Java项目,并创建java package。2、在对应的java package上,新建一个Java类GetMethods。3、打开文件类,定义方法buildData,并传入一个参数flag,根据flag返回不同的值。4、在main主函数中,调用getMethodName方法,并打印结果。5、保存代码并运行文件,可以查看控...

java接口和父类中有相同的方法 如何在子类中重写接口中的方法
有一种办法就是为父类的哪个方法重新写一个方法,调用super,如下:public class Aaa extends B implements A { public void a() { System.out.println("interface的方法"); } public void extendsA(){ super.a(); } public static void main(String[] args) { Aaa aaa=new Aaa(); aaa.a();\/\/实现...

Java类中能存在同名的两个成员方法?
在Java 中,同一个类中的2个或2个以上的方法可以有同一个名字,只要它们的参数声明不同即可。在这种情况下,该方法就被称为重载(overloaded ),这个过程称为方法重载(method overloading )。方法重载是Java 实现多态性的一种方式。如果你以前从来没有使用过一种允许方法重载的语言,这个概念最初...

Java中一个类最多可以继承?
java中定义一个类可以同时继承两个类java不支持多重继承,也就是不能同时继承两个类,但可以实现多个接口。不能。\\x0d\\x0a一个类不能直接继承多个类,java是单继承语言。\\x0d\\x0a比如说这样:classAextendsB,C不能这样写,因为java不支持多继承。java中对于继承,java只支持单继承。java虽然不...

JAVA:一个类实现多个接口
\/\/A接口interface A{ public int getA();} \/\/B接口 interface B{ public int getB();} \/\/实现了某个接口必须实现其全部的方法 public class ImpAB implements A,B{ public int getA() { return 0;} public int getB() { return 0;} } ...

有两个接口,接口A,B,里边有个void play()方法,现有接口C继承了A和B...
接口C继承了A,B这句有错吧,java只能单一继承,不比c++ DD实现C那DD重写的play就是接口C的,而且不用纠结是哪个接口,反正接口声明的方法全是抽象无具体内容的,你要的只是一个名字,往这个名字里面加点具体内容而已

java 如果一个类继承两个类,方法名怎么写?
\/java只能单继承,希望同时继承多个类的话可以考虑implements.比如说:class A extends B implements C, D{\/\/ ... }java不允许多继承,但允许implement 多个接口,事实上,接口也可以说是一个类,只不过,里面有很多没有实现的方法,需要你在子类中实现。

Java中 一个类实现了某接口 则必须实现该接口中的所有方法么?
2)不同点 a、类可以实现无限个接口,但仅能从一个抽象(或任何其他类型)类继承,从抽象类派生的类仍可实现接口,从而得出接口是用来解决多重继承问题的。b、抽象类当中可以存在非抽象的方法,可接口不能,且它里面的方法只是一个声明必须用public来修饰没有具体实现的方法。c、抽象类中的成员变量...

相似回答