A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 。。。。。。。 中级黑马   /  2013-11-18 23:01  /  1409 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

百度看了很多答案,怎么说的都有,我就想真正弄个明白
问题:接口和Object的关系,接口是继承了Object吗

评分

参与人数 1黑马币 +9 收起 理由
狼王 + 9

查看全部评分

7 个回复

倒序浏览
Object是所有类的父类,  Object和接口完全没关系,    一个类是继承是Object  实现的是接口,
回复 使用道具 举报
本帖最后由 ysunday 于 2013-11-18 23:41 编辑

接口和Object是并列关系,并不是接口继承了Object。
接口是接口,而在类的世界里,所有类都继承了Object,
但是接口和类属于不同的世界,所以接口没有继承Object

api中
java.lang.Object
|—— file:///home/ubuntu/Documents/java/docs/javaapi/jdk1.6/resources/inherit.gifjava.lang.Boolean
看这里,说,Boolean继承了Object,但是Object和Boolean中间并没有接口啊

你看接口的api,也只是说接口 Comparable<T>这个接口在java.lang包下,没有
说继承Object啊


评分

参与人数 1黑马币 +3 收起 理由
FFF + 3 赞一个!只是分太高了~下次再给你~~嘎嘎~~.

查看全部评分

回复 使用道具 举报
Object类是Java体系的单根父节点,所有Java类都从Object类继承, 但接口是接口,不继承Object,接口只能继承某一接口,但某个类可以实现接口(多个接口)。还是等大牛们来回答吧
回复 使用道具 举报
气死我了,这玩意怎么改,怎么还把我的文件路径显示出来了呢~~~~~~
回复 使用道具 举报
答案肯定是:接口不继承任何类。类可以实现接口。解释如下

接口中的方法是public abstract 修饰。 全是抽象方法
变量是 public static final修饰。

倘若接口继承了Object类,那么将继承Object中的实方法,包括常见的toString  equals 等。
这两个方法都不是抽象方法,与接口中必须是抽象方法矛盾。


评分

参与人数 1技术分 +1 收起 理由
狼王 + 1 赞一个!

查看全部评分

回复 使用道具 举报 1 0
ysunday 中级黑马 2013-11-19 21:24:32
7#
对不起,尽管这个问题关闭了,希望你还是能看下我写的,昨天我说错了。接口隐含的继承了Object类,这是底层实现的,我们根本看不见,java也不想让你看见,否则就乱套了。但是确实是继承了,但是平常不深究的话可以认为没继承
至于继承的原因
因为就如楼上所说,如果接口继承了Object,那么他会有Object的各种方法,但是恰巧接口还真就有了这些方法。
虽然你在api看不到任何从Object继承过来的方法。但是你去eclipse下就会发现问题了

假如这样:
                Collection<String> col = new ArrayList<>();
                System.out.println(col.toString());
去看吧,竟然打印出来东西了,col.   会点出好多Object类有的方法。这个又做何解释
回复 使用道具 举报
ysunday 发表于 2013-11-18 23:43
气死我了,这玩意怎么改,怎么还把我的文件路径显示出来了呢~~~~~~ ...

原贴下面有个编辑
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马