在阅读Java.util.ArrayList源码的过程中,我产生了一个小疑惑,ArrayList实现了List这个接口(这没问题,学Java的都知道),但ArrayList的抽象父类AbstractList同样实现了List接口。
想了很久这样设计有什么特别的作用? 父类已经实现了接口,子类继承父类的所有方法,同样能实现接口的所有方法啊,完全没必要子类再去实现该接口!
这样做没有任何的作用,但是Java源码应该不会犯这么低级的错误吧?
带着疑问上网搜索了一番,发现已经有些人提出了相似的提问。
根据网上相关的问题答案和自己在eclipse的测试。
最后得出的结论是:效果上没什么特别用途,仅仅是为了让人阅读源码时知道子类实现了该核心接口。就像很多人都知道 ArrayList实现了List接口就够了,而不需要知道它继承AbstractList的相关细节。