ArrayList繼承了AbstractList為何還要實現List接口?
相關的問題:
-
Vector既然繼承了AbstractList為啥還要實現List接口
-
HashMap繼承了AbstractMap為何還要實現Map接口?
-
HashSet繼承了AbstractSet為何還要實現Set接口?
看了網上很多回答 總結一下:
-
class.getinterfaces()
返回不同的結果,方便基於List接口的代理 -
增加可閱讀性,顯示的實現List 接口
-
AbstractList 已經大多方法都已經實現,ArrayList可以不做任何事 就可以使用,為了強制ArrayList重寫代碼
所以實現了List接口
-
作者犯了錯誤....
都挺有道理,最后在StackOverflow 看到答案. 原文,竟然真的是寫錯了, 回復者自稱問過 java collection 的作者 Josh ,並得到上述答案....,挺有意思,至於后來更新為什么沒有去掉,可能真的覺得:"嗯?!,挺有道理!"