黑马程序员技术交流社区
标题:
存在同名不同返回值方法的两个接口可以同时实现吗
[打印本页]
作者:
郭阳
时间:
2012-9-9 04:08
标题:
存在同名不同返回值方法的两个接口可以同时实现吗
本帖最后由 郭阳 于 2012-9-10 21:20 编辑
存在同名不同返回值方法的两个接口可以同时实现吗
即
interface A
{void show();}
复制代码
interface B
{int show();}
复制代码
一个类可以同时实现他们两个接口吗?
再有一个就是如果子类继承父类总有个show方法了,他实现的接口里也有一个show方法,返回值类型不同,调用的时候如何区分
作者:
杨千里
时间:
2012-9-9 04:56
不行,因为一个类实现A,B接口,有两个方法 void show()和int show(),当调用show()方法时,返回结果,你说是int还是void?这中情况不允许出现。
一个类继承A实现B,如果有同名不同的返回值类型的方法这是不允许的
作者:
王陶成
时间:
2012-9-9 08:23
不可以。同时实现了A,B接口,两个方法都得重写。重写方法要求重写的方法要与父类的方法一模一样。覆写下来,就会有两个同名不同返回值得参数。方法的重载只看参数列表。这样两个覆写的方法就冲突了。
作者:
Tesla时光
时间:
2012-9-9 09:09
直接实现,这是不可以的,因为返回值不兼容,不可以覆盖.
但实际应用中这种情况是很有可能出现的,
其实也是可以实现的,只不过方式一不样
要实现这个操作,就是用内部类
这也是内部类一个非常重要的应用.
看代码:
interface A
{
void show();
}
interface B
{
int show();
}
class Test implements A
{
public void show()
{}
public class Test1 implements B
{
public int show()
{
return 5;
}
}
}
最后注意一点:实现方法一定要加public.
作者:
舒远
时间:
2012-9-9 09:26
这种问题根本不允许出现。写个类验证一下就知道了。编译器给出的错误提示是很清楚的。
作者:
陈俊来
时间:
2012-9-9 20:26
不可以啦lz
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2