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

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

推荐于2017-09-30 · 繁杂信息太多,你要学会辨别
知道顶级答主
回答量:6.2万
采纳率:85%
帮助的人:6635万
展开全部
  一,一般来说,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();
  }
  }
hiwaters
2014-01-18 · TA获得超过342个赞
知道小有建树答主
回答量:152
采纳率:0%
帮助的人:64.1万
展开全部
如果是电脑类的话,应该是拥有一个显示器和一个主机,如:
class Computer{
private Screen screen;
private Host host;
};
很容易通过而通过成员变量的getSize获得尺寸,而不是让电脑实现不同接口。对一个对象来说,
实现的不同的接口的相同名字的方法代表的就应该是一个意思,比如getSize就应该是获得整个
电脑的尺寸,这不应该出现歧义。一个同名方法可以满足多个接口。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-01-18
展开全部
没法办到……因为接口没有具体逻辑,你怎么实现的就会怎么返回。不论调用的时候是screen类型还是host类型,最后具体的实现都是computer的getSize方法。建议分开实现,因为computer和screen、host不是一个继承关系,而是一个组成关系
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
fly_gas
2014-01-18
知道答主
回答量:45
采纳率:100%
帮助的人:8.8万
展开全部
两个接口的实现都是这个类中的方法,无论是创建哪个接口的实例,调用这个方法总是类实现的方法。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
KONEAxiaoyi
2014-01-18
知道答主
回答量:14
采纳率:0%
帮助的人:6.1万
展开全部
显示器跟主机应该作为电脑的属性来定义类。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式