黑马程序员技术交流社区

标题: java接口问题 [打印本页]

作者: 李道福    时间: 2013-3-22 22:14
标题: java接口问题
本帖最后由 李道福 于 2013-3-22 23:33 编辑

在java中类只能单继承但能实现多个接口,那如果一个类实现了多个接口,而多个接口中有相同的方法(相同的方法名和参数)
那类对象在调用这个方法时,如何区分是调用了那个接口中的方法?
作者: 刘海陆    时间: 2013-3-22 22:17
接口的方法,需要复写吧
作者: freeboyhrk    时间: 2013-3-22 22:22
看这个类实现了哪个借口,implement 后面是哪个接口,就是调用了哪个接口里的方法
作者: 葛伟    时间: 2013-3-22 22:23
要是参数类型一致的话,返回类型不一致会报错,编译不过,要是返回类型也一致的话那么就相当于两个都实现了,你既可以把它当成一个interface1的对象,也可以当成一个interface2的对象,都没有问题的。
作者: 梅杰明    时间: 2013-3-22 22:31
因为这个相同方法内没有方法体,复写了不会发生调用问题
作者: HM马明宇    时间: 2013-3-22 22:54

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

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

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

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


希望你能搞明白~~

作者: HM马明宇    时间: 2013-3-22 22:57
第三行文字表述有误,不好意思,正确如下:写错位置了
只能实现继承的某一个接口中的抽象方法。你要实现两次的话就相当于  一  完全相同的  方法写两次,会造成方法的重定义的,会引起错误!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2