黑马程序员技术交流社区

标题: 关于接口的多实现问题 请教 [打印本页]

作者: 玥夜    时间: 2014-8-4 20:48
标题: 关于接口的多实现问题 请教
本帖最后由 玥夜 于 2014-8-5 07:37 编辑
  1. interface TntfaceA
  2. {
  3.         public abstract int show();
  4. }
  5. interface IntfaceB
  6. {
  7.         public abstract void show();
  8. }

  9. class Demo implements TntfaceA,TntfaceB
  10. {

  11. }
复制代码


这个不也是不能同时又两个返回值不一样的函数麽????
作者: liqi    时间: 2014-8-4 20:56
继承是因为,可以调用父类的方法,如果多继承,出现相同的方法名,计算机不知道调用哪个,出错
但是接口中的方法不能调用,因为是抽象的,
所以实现接口的子类得复写方法,复写哪个就由你定了
作者: GoodBoy123    时间: 2014-8-4 20:58
这个不也是不能同时又两个返回值不一样的函数麽????

看到你这句话我都晕了。
作者: 江苏孙浩    时间: 2014-8-4 21:01
本帖最后由 江苏孙浩 于 2014-8-4 21:03 编辑

应该不能吧。这两个函数的函数签名是一样的,所以不能作为重载来解释。
然后就“覆盖”/覆写而言,同样也无法写出一个【能成功覆盖这两个返回类型不一样的函数】的函数

估计不会通过编译。
作者: bfl625    时间: 2014-8-4 21:09
代码应该没有问题的,但是没有看懂你的问题!
作者: 胥亮    时间: 2014-8-4 21:12
函数只能有一个返回值  不知道你的意思
作者: 思维    时间: 2014-8-4 21:14
这个看你复写哪个方法用哪个呗!
作者: bbdeyouxang    时间: 2014-8-4 21:59
两个不相干吧,而且即使你两个接口里方法的返回值也相同都没关系的,因为没有方法体
作者: 玥夜    时间: 2014-8-5 07:30
bbdeyouxang 发表于 2014-8-4 21:59
两个不相干吧,而且即使你两个接口里方法的返回值也相同都没关系的,因为没有方法体 ...

谢谢你啊  我想通了 这个应该是不能这样去多实现的   这样写是没问题的  但是class  c 永远都是抽象类  因为他不能同时覆写两个函数,所以这么实现接口是没有意义的:lol
作者: 玥夜    时间: 2014-8-5 07:31
bbdeyouxang 发表于 2014-8-4 21:59
两个不相干吧,而且即使你两个接口里方法的返回值也相同都没关系的,因为没有方法体 ...

谢谢   我昨天考虑的是  这个是不是跟不能多继承是一样的  我现在知道了
作者: 玥夜    时间: 2014-8-5 07:32
思维 发表于 2014-8-4 21:14
这个看你复写哪个方法用哪个呗!

恩 知道了  谢谢
作者: 玥夜    时间: 2014-8-5 07:34
江苏孙浩 发表于 2014-8-4 21:01
应该不能吧。这两个函数的函数签名是一样的,所以不能作为重载来解释。
然后就“覆盖”/覆写而言,同样也无 ...

谢谢你啊  我想通了 这个应该是不能这样去多实现的   这样写是没问题的  但是class  c 永远都是抽象类  因为他不能同时覆写两个函数,所以这么实现接口是没有意义的
作者: 玥夜    时间: 2014-8-5 07:35
GoodBoy123 发表于 2014-8-4 20:58
这个不也是不能同时又两个返回值不一样的函数麽????

看到你这句话我都晕了。 ...

呵呵 这样写是没有意义的其实  纠结了半夜。。。。
作者: 玥夜    时间: 2014-8-5 07:36
liqi 发表于 2014-8-4 20:56
继承是因为,可以调用父类的方法,如果多继承,出现相同的方法名,计算机不知道调用哪个,出错
但是接口中 ...

谢谢  想了半天  这个c类存在是没有意义的  因为他不可能被实例化
作者: liqi    时间: 2014-8-5 07:44
胥亮 发表于 2014-8-4 21:12
函数只能有一个返回值  不知道你的意思

看到这个还以为我回复的,看着内容不是啊。然后突然反应过来,这里的头像是黑马头像,不是QQ头像
作者: liqi    时间: 2014-8-5 07:50
GoodBoy123 发表于 2014-8-4 20:58
这个不也是不能同时又两个返回值不一样的函数麽????

看到你这句话我都晕了。 ...

他的意思,应该是多继承的话,两个父类如果有方法名相同,但返回值不同的函数,JVM不知道调用哪个,出错,所以不能多继承
类可以多实现,但是他的例子中在说:多实现也会出现和多继承如同上面那样的问题,为什么可以多实现
作者: 玥夜    时间: 2014-8-21 10:56
自我恢复 给币麽 试试
作者: 最给力回复    时间: 2014-8-21 11:22
GoodBoy123 发表于 2014-8-4 20:58
这个不也是不能同时又两个返回值不一样的函数麽????

看到你这句话我都晕了。 ...

我也是。。。。。。。。。。。。
作者: 最给力回复    时间: 2014-8-21 11:23
应该可以吧
作者: pvting    时间: 2014-9-19 23:28
这样写是不对的,不管怎样实现都会出错,设计上有问题,需要避免




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