在Collection Framework中,我们有接口List
和类AbstractList
:
AbstractList implements List
ArrayList
延伸AbstractList
和
implements List
我的问题:为什么ArrayList
有implements List
条款?
如果ArrayList extends AbstractList
和AbstractList implements List
,我们不能说ArrayList implement List
?
答案 0 :(得分:41)
是。它可能已被省略。但因此可以立即看到它是List
。否则,需要额外点击代码/文档。我认为这就是原因 - 清晰度。
并添加Joeri Hendrickx评论的内容 - 这是为了显示ArrayList
实现List
。整个图片中的AbstractList
只是为了方便起见,减少了List
实现之间的代码重复。
答案 1 :(得分:6)
这很可能是为了提高继承结构的可追溯性。这样,在浏览Javadoc等时,您不必关闭整个继承树。
答案 2 :(得分:6)
我的2美分是为了保持ArrayList 是列表的事实。 AbstractList只完成List所需的某些实现。