A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李道福 中级黑马   /  2013-3-22 22:14  /  1864 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 李道福 于 2013-3-22 23:33 编辑

在java中类只能单继承但能实现多个接口,那如果一个类实现了多个接口,而多个接口中有相同的方法(相同的方法名和参数)
那类对象在调用这个方法时,如何区分是调用了那个接口中的方法?

评分

参与人数 1技术分 +2 收起 理由
黄玉昆 + 2 鼓励鼓励

查看全部评分

6 个回复

倒序浏览
接口的方法,需要复写吧
回复 使用道具 举报
看这个类实现了哪个借口,implement 后面是哪个接口,就是调用了哪个接口里的方法
回复 使用道具 举报
要是参数类型一致的话,返回类型不一致会报错,编译不过,要是返回类型也一致的话那么就相当于两个都实现了,你既可以把它当成一个interface1的对象,也可以当成一个interface2的对象,都没有问题的。
回复 使用道具 举报
因为这个相同方法内没有方法体,复写了不会发生调用问题
回复 使用道具 举报

接口的存在就是定义功能,两个接口定义同样的功能,就是相同的接口了,只不过名字不同而已。

就像你电脑上有多个USB接口,没在同一个位置,功能相同。你不可能同时把一个U盘插进多个usb接口里面去吧?

只能实现继承的某一个接口中的抽象方法。你要实现两次的话就相当于一完全相同的个方法写两次,会造成方法的重定义的,会引起错误!

测试发现会实现implements关键字后面(存在多个相同功能的接口)的第一个接口上,例如:
public class Test implements A,B {
         接口实现;//实现的是A接口中的功能
}


希望你能搞明白~~

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
第三行文字表述有误,不好意思,正确如下:写错位置了
只能实现继承的某一个接口中的抽象方法。你要实现两次的话就相当于  一  完全相同的  方法写两次,会造成方法的重定义的,会引起错误!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马