黑马程序员技术交流社区
标题:
接口多实现时的问题
[打印本页]
作者:
安阳
时间:
2013-8-16 22:44
标题:
接口多实现时的问题
本帖最后由 安阳 于 2013-8-16 23:31 编辑
接口多实现时的问题,必须返回值都一样吗?
class InterfaceDemo {
public static void main(String[] args) {
InterClass ic = new InterClass();
ic.show();
}
}
interface Inter1 {
public int show(); //此处int改为void才可以,还有其他方法吗?
}
interface Inter2 {
public void show();
}
class InterClass implements Inter1,Inter2{
public void show() {
System.out.println("Hello World!");
}
}
复制代码
作者:
Steven__
时间:
2013-8-16 22:55
不可以 接口里定义的全部都是 抽象方法 ,抽象方法是没有返回值的, 必须要有abstract 修饰, 如果不写 ,系统会默认会添加的 如果写返回值类型的话, 就要有return语句, 就是要被调用的 , 抽象方法 必须是被实现的 不可以被调用 ,接口也就是为了扩展功能实现 !!!!, 版主给点技术分吧!!!!
作者:
神之梦
时间:
2013-8-17 00:00
此处是因为你实现的两个接口有相同的方法名,且不能重载,这样复写的时候,就不知道要复写哪一个了,这样是不行滴
作者:
安阳
时间:
2013-8-17 00:24
神之梦 发表于 2013-8-17 00:00
此处是因为你实现的两个接口有相同的方法名,且不能重载,这样复写的时候,就不知道要复写哪一个了,这样是 ...
哦,一般不会这样用,只是觉得这样的话,多实现就有点瑕疵
作者:
焦允
时间:
2013-8-17 00:48
覆盖方法必须和被覆盖方法具有相同的方法名称、参数列表和返回值类型(子类方法返回值类型可以是父类方法返回值类型的子类),上面代码中仅复写了Inter2中show方法,并未复写Inter1中的。
还有对于楼上的回答有点质疑:这种说法只是在多继承中,多个父类中有同名方法,在子类中调用时会出现混乱,在实现接口中的抽象方法时,应该可以根据返回值类型判断具体实现的是哪个接口中的方法的。
我是这样理解的,如果理解错误,还请详细赐教。{:soso_e183:}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2