关于接口与Object 类的关系

看到这个标题,你或许就会想好自己的那份答案。但事实上这个确实没有答案,至少没官方证明它们之间的基友关系。。


看法一:因为老师说,你可以把接口看作是特殊的类,所以不假思索的就认为接口也 继承  根类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中所有的方法呢。这个问题,可能确实不在我的能力范围之内,看以后能否学得更底层,去了解到。


评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值