Java 为什么ArrayList有;实施列表;?
在集合框架中,我们有接口Java 为什么ArrayList有;实施列表;?,java,collections,Java,Collections,在集合框架中,我们有接口List和类AbstractList: AbstractList implements List 和ArrayList扩展AbstractList和 implements List 我的问题是:ArrayList为什么有implements-List子句 如果ArrayList扩展了AbstractList并且AbstractList实现了List,我们不能说ArrayList实现了List?是的。本来可以省略的。但因此,它是一个列表。否则,需要额外点击代码/文档。我
List
和类AbstractList
:
AbstractList implements List
和ArrayList
扩展AbstractList
和
implements List
我的问题是:ArrayList
为什么有implements-List
子句
如果
ArrayList扩展了AbstractList
并且AbstractList实现了List
,我们不能说ArrayList实现了List
?是的。本来可以省略的。但因此,它是一个列表
。否则,需要额外点击代码/文档。我认为这就是原因——清晰
为了添加Joeri Hendrickx的评论,这是为了显示
ArrayList
实现了List
<代码>抽象列表在整个图中只是为了方便起见,并减少列表
实现之间的代码重复。这很可能是为了增加继承结构的可跟踪性。这样,在浏览Javadoc或类似文件时,您就不必遍历整个继承树。我的2美分是为了保持ArrayList是一个列表这一事实。AbstractList只完成了列表所需的某些实现。不仅如此,我更喜欢这种风格,因为它能揭示意图。arraylist的目标是实现List。“扩展抽象列表只是实现这一目标的一种方式。”约里·亨德里克斯(Joeri Hendrickx)表示同意+1对于注释如果基类实现接口,当前的JavaDoc工具(Oracle和Gnu版本)将列出派生类自动实现接口,而无需在派生类上放置实现接口。所以不需要额外的点击。(即使基类不是公共的,也是如此。)