java:一个类实现的两个接口里都有同一个方法(名),怎么办?
7个回答
展开全部
该接口只实现同一个方法一次就可以了。
接口只是对方法的定义,最终的实现还是再类中。因此如果过2个接口的方法一样,对类来说就是一个方法,不同接口类型使用同一个类方法。
比如接口IA,IB都定义了方法a,则如果类C实现这两个接口时,只需要实现一次方法a就可以了。
举例:
public class CClass implements IA,IC{
@Override
public void a() {
System.out.println("cc");
}
}
展开全部
如果两个接口属于继承关系比较简单,你实现的方法要根据子类接口的方法编写。如果两个接口不属于继承关系,就不太清楚了,我觉得需要同时编写两个对应的方法,当然这时是指两个方法的参数不同。但如果连方法的参数都相同,我就实在不知道了。LZ可以自己编一个小的测试程序试一下。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
仅仅是方法名一样,应该没有关系,根据参数的数量不同或类型不对可以做出区分.
如果连参数的数量和类型都一样,那么你只要重写一次就可以了.
怎么办是什么意思?
你调用接口的方法,事实上是调用了实现这个接口的类的方法.所以并不明白你的怎么办是什么意思.
你最好把你的想法更明确的说出来
如果连参数的数量和类型都一样,那么你只要重写一次就可以了.
怎么办是什么意思?
你调用接口的方法,事实上是调用了实现这个接口的类的方法.所以并不明白你的怎么办是什么意思.
你最好把你的想法更明确的说出来
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不可以,你编译不过去的。
====================
我测试,竟然可以? 呵呵呵!我去深度测试一下!
代码运行没问题
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();
}
====================
我测试,竟然可以? 呵呵呵!我去深度测试一下!
代码运行没问题
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();
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这完全符合逻辑,也存在这种情况
但如果在接口里定义的方法功能不是完全一样,
可以在方法具体实现的时候,在内部分别处理,来加以区分!
当然这不建议,尽量避免这种问题!
具体需求会有解决的办法!
但如果在接口里定义的方法功能不是完全一样,
可以在方法具体实现的时候,在内部分别处理,来加以区分!
当然这不建议,尽量避免这种问题!
具体需求会有解决的办法!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询