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版本)将列出派生类自动实现接口,而无需在派生类上放置
实现接口。所以不需要额外的点击。(即使基类不是公共的,也是如此。)