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

 我来答
woshidaniel
推荐于2018-04-11 · TA获得超过9240个赞
知道小有建树答主
回答量:1760
采纳率:96%
帮助的人:951万
展开全部

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

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

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

举例:

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

}
}
la_winters
2008-09-18
知道答主
回答量:28
采纳率:0%
帮助的人:0
展开全部
如果两个接口属于继承关系比较简单,你实现的方法要根据子类接口的方法编写。如果两个接口不属于继承关系,就不太清楚了,我觉得需要同时编写两个对应的方法,当然这时是指两个方法的参数不同。但如果连方法的参数都相同,我就实在不知道了。LZ可以自己编一个小的测试程序试一下。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
新翼追风
2008-09-18 · TA获得超过1134个赞
知道小有建树答主
回答量:544
采纳率:0%
帮助的人:495万
展开全部
仅仅是方法名一样,应该没有关系,根据参数的数量不同或类型不对可以做出区分.

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

怎么办是什么意思?

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

你最好把你的想法更明确的说出来
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
好大木头
推荐于2017-09-09 · TA获得超过1434个赞
知道大有可为答主
回答量:1705
采纳率:0%
帮助的人:1930万
展开全部
不可以,你编译不过去的。
====================
我测试,竟然可以? 呵呵呵!我去深度测试一下!

代码运行没问题

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();
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
stone_en
2008-09-18 · TA获得超过102个赞
知道小有建树答主
回答量:87
采纳率:0%
帮助的人:120万
展开全部
这完全符合逻辑,也存在这种情况
但如果在接口里定义的方法功能不是完全一样,
可以在方法具体实现的时候,在内部分别处理,来加以区分!

当然这不建议,尽量避免这种问题!
具体需求会有解决的办法!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式