看到这个标题,你或许就会想好自己的那份答案。但事实上这个确实没有答案,至少没官方证明它们之间的基友关系。。
看法一:因为老师说,你可以把接口看作是特殊的类,所以不假思索的就认为接口也 继承 根类Object (这种看法是最无厘头的)
看法二:毫无瓜葛。(找到一种不错的理由支持这一观点)
用反正发来证明两者毫无瓜葛。如果接口继承Object类,那么你可以直接在接口名后面加extends Object。如下声明一个接口。很明显,这个编译都通过不了。
Interface Inter extends Object{
}
如果一个接口也继承了Object 类,那么接口会继承Object类中的很多方法,显然会错,因为那些方法都是实方法,不是抽象方法。比如toString() 方法,被继承过来,不满足接口中方法都是抽象方法。
看法三:隐含继承(也找到一种不错理由支持这一观点)
看如下代码: List接口中如果没有toString()方法,那么由多态或继承的原理,System.out.println(array.toString());会报错。 但事实确实不会报错。
List array= new ArrayList();
array.add("hello");
System.out.println(array.toString());
本人观点。第三种观点可能是正确的,但是确实没办法证明。与其说是隐藏关系,还不如说有可能是接口中隐形的实现过Object中所有的方法呢。这个问题,可能确实不在我的能力范围之内,看以后能否学得更底层,去了解到。