黑马程序员技术交流社区

标题: 接口到底是不是Object的子类 [打印本页]

作者: wowo6288    时间: 2014-6-8 11:27
标题: 接口到底是不是Object的子类
本帖最后由 wowo6288 于 2014-6-18 22:03 编辑

这两天看到这个问题,目前都还觉得有点迷惑,有说接口与Object是并行的关系,也有说接口是继承Object的因为用接口可以调用toString方法,有点迷惑
作者: shisishishisi    时间: 2014-6-8 13:28
值得思考,但是觉得意义不大,因为接口不可能单独的存在,他的作用不就是让子类去实现么?任何类实现了接口自然就是Object的子类了,如有不足,请大家指教~~
作者: 郝义涛    时间: 2014-6-8 13:36
很有见地的问题,不过根据API上面,接口应该不继承Object,接口中的方法必须全部是共有抽象的,所以不应该
作者: yogaa    时间: 2014-6-8 13:39
我觉得二楼说的很有道理,没有被实现的接口,我觉得它的存在是没有意义的,什么也解决不了~
作者: wenrouhaiyang    时间: 2014-6-8 14:30
值得思考下的问题,个人觉得不应过于纠结于此,实现接口才有意义
作者: 凌羽猎风    时间: 2014-6-8 15:15
我觉得接口与类是并行的关系,这种说法是正确的。
因为学习接口的时候,明确定义过,接口不是类,接口就是接口。我的理解是,接口是一种特殊的类,特殊到已经不能再称之为类,所以改名叫接口。总结来说,接口不是类。
toString方法可以被重写,但是由于上面说的原因,并不能说接口是类。其实这是一个定义的问题,定义这样的一个东西叫做接口,就行定义狼狗是狗,他就不是狼了,只能叫做狼狗……
作者: 唐坚    时间: 2014-6-8 15:33
一般扩展功能定义在接口中,基本功能定义在类中。我们都知道接口中的方法都是抽象的,子类必须实现的。如果接口是继承Object的话,那么接口中就会有所有的Object中的方法,而且是抽象的。
但Object中的方法并不是抽象的。
这就自相矛盾了。
显示接口不是继承Object类。

作者: 提菩--空    时间: 2014-6-8 15:34
接口是否继承Object不重要, 实现类肯定是继承Object,所以所有的【实现类.toString()】是没有问题的。我从某些书中看到:一个Java接口如果没有父接口,则该接口内隐形的声明了object类所有方法对应的抽象方法头。
作者: shisishishisi    时间: 2014-6-8 16:34
唐坚 发表于 2014-6-8 15:33
一般扩展功能定义在接口中,基本功能定义在类中。我们都知道接口中的方法都是抽象的,子类必须实现的。如果 ...

貌似分析有误哦,子类是可以用抽象方法去override父类的方法的,也就是说父类中的方法是可以被子类中抽象方法覆盖的,如有不对,请指教~~
作者: 唐坚    时间: 2014-6-8 19:13
shisishishisi 发表于 2014-6-8 16:34
貌似分析有误哦,子类是可以用抽象方法去override父类的方法的,也就是说父类中的方法是可以被子类中抽象 ...

恩 我忘了复写了  谢啦
作者: 枫桥夜泊    时间: 2014-6-8 20:59
Object类是Java体系的单根父节点,所有Java类都从Object类继承。还有interface和类是不同的,interface只能继承interface,而不能继承任何类。
作者: 清规欲    时间: 2014-6-8 22:17
接口不属于类
所有类都是Object类的子类
作者: 周小宁    时间: 2014-6-10 14:28
这个问题同二楼,纠结起来意义并不大。Object是所有对象的基类。而接口的存在是为了定义一个公共的规则,便于开发和后期维护,一般来说都要有对应的实现类,就算暂时没有实现类也是为了后期功能扩展而存在的,而接口的实现类自然是object的子类。  而关于接口本身是不是object的子类这个问题,网上貌似有人做过测试,结论是“不是”




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