首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >尽管List扩展了Collection,为什么Collection接口中的方法又要在List接口中声明

尽管List扩展了Collection,为什么Collection接口中的方法又要在List接口中声明
EN

Stack Overflow用户
提问于 2019-01-22 18:23:13
回答 1查看 104关注 0票数 4

我检查了java Collection接口和List接口的源代码。Collection接口中的一些方法,例如int size(),在List接口中被重新声明,尽管它不一定是List extends the Collection接口(Java11)。

EN

回答 1

Stack Overflow用户

发布于 2019-01-22 18:26:41

子接口中的方法可以具有与具有完全相同签名的超级接口的方法不同的行为(或至少更具体的行为)。

因此,例如,对于List接口的用户来说,知道add是非常有用的

将指定的元素追加到此列表的末尾

这比Collection接口中对add的一般描述更具体:

确保此集合包含指定的元素(可选操作)

自Java8以来,在子接口中重新声明方法还有另一个原因,那就是default接口实现。您可以看到,Spliterator<E> spliterator()是在ListCollectionIterable中定义的,并且在每个接口中都有不同的默认实现。

我同意您在List中重新定义size()的例子意义不大,因为Javadoc实际上与size()中的Collection完全相同。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54306105

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档