如果JAVA中一个类继承的两个接口中有相同方法,怎么办

例如一个类电脑实现了接口1显示器和接口2主机
Interface1 screen{
void getSize();
}
Interface2 host{
void getSize();
}
class computer implments screes,host{
void getSize(){};//我要在这个方法里返回显示器和主机的size,请问怎么办到???
}

  一,一般来说,JAVA不支持一个类继承的两个接口中存在相同的方法,这样容易引起接口继承混乱;
  二,如果当事人一定要让一个类继承的两个接口存在相同的方法,可以通过内部类来实现,一般来说JAVA是不允许接口重名的;
  三,内部类可以这样写:
  interface I1
  {
  void get();
  }
  interface I2
  {
  void get();
  }
  public class MultiInter implements I1{

  public void get(){
  System.out.println("I am from I1");
  }

  private class I2Impl implements I2{
  public void get(){
  System.out.println("I am from I2");
  }
  }
  public void get2(){
  I2 i2=new I2Impl();
  i2.get();
  }
  public static void main(String rsg[]){
  MultiInter mi=new MultiInter();
  mi.get();
  mi.get2();
  }
  }
温馨提示:内容为网友见解,仅供参考
第1个回答  2014-01-18
如果是电脑类的话,应该是拥有一个显示器和一个主机,如:
class Computer{
private Screen screen;
private Host host;
};
很容易通过而通过成员变量的getSize获得尺寸,而不是让电脑实现不同接口。对一个对象来说,
实现的不同的接口的相同名字的方法代表的就应该是一个意思,比如getSize就应该是获得整个
电脑的尺寸,这不应该出现歧义。一个同名方法可以满足多个接口。本回答被网友采纳
第2个回答  2014-01-18
没法办到……因为接口没有具体逻辑,你怎么实现的就会怎么返回。不论调用的时候是screen类型还是host类型,最后具体的实现都是computer的getSize方法。建议分开实现,因为computer和screen、host不是一个继承关系,而是一个组成关系
第3个回答  2014-01-18
两个接口的实现都是这个类中的方法,无论是创建哪个接口的实例,调用这个方法总是类实现的方法。
第4个回答  2014-01-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接口和父类中有相同的方法 如何在子类中重写接口中的方法
有一种办法就是为父类的哪个方法重新写一个方法,调用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中一个类 怎样实现2个接口有相同的方法名?
1、首先双击打开eclipse开发工具,新建一个Java项目,并创建java package。2、在对应的java package上,新建一个Java类GetMethods。3、打开文件类,定义方法buildData,并传入一个参数flag,根据flag返回不同的值。4、在main主函数中,调用getMethodName方法,并打印结果。5、保存代码并运行文件,可以查看控...

在java中一个类只能实现一个接口
Java支持类实现多接口,接口中的方法是抽象的,一个类实现可以多个接口。假设这些接口中存在相同方法(方法名与参数相同),在实现接口时,这个方法需要实现类来实现,并不会出现二义性的问题。在Java语言中,类可以同时继承另一个类和实现一个或多个接口。但是,继承和实现在语法和语义上有很大的区别。

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

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

java中定义一个类可以同时继承两个类
这句话要看怎么理解去了,一个类不能直接继承两个类比如说这样:class A extends B,C 不能这样写,因为java不支持多继承,但是你可以像下面这样实现继承多个类 class A extends B class C extends A 这样C就同时继承了B和A两个类

怎么实现具有同样方法的两个或者多个接口?
如果有接口有相同方法,接口你都实现的话,你当然在你的类里面只能有一种实现。但是多态性还是可以保证的。

抽象类在Java语言中表示的是一种继承关系,一个类只能使用一次继承.但是...
A选项,对。java中类之间只能够实现单继承,即就是说一个类只能有一个父类,但允许多层继承,即就是一个类有一个父类,该父类还可以有自己的一个父类。举个例子:假如A能够继承类B和C,但当B,C中有相同的方法时,让A来调用,那么,A到底调用的父类中谁的方法呢?所以,java中类只能够实现...

相似回答