关于Java继承方面的问题

类B实现了接口A,类C继承于类B。到目前都很正常。但是很多人会在此基础上在类C的源码中显式声明了implements A,我想问,这么做的目的是啥?例子:JDK源码中,java.util.List,java.util.AbstractList以及java.util.ArrayList之间的关系就是这样。

是的.它可以被省略。但这样就可以立刻看到它是一个列表。否则,将需要一个额外的点击代码/文档。我认为这是很清楚的。
要添加什么Joeri亨德克斯评论-这是表明ArrayList实现列表的目的。在整个画面abstractlist只是为了方便和减少与列表的实现代码重复。

http://stackoverflow.com/questions/4387419/why-does-arraylist-have-implements-list

google了下
http://stackoverflow.com/questions/5668429/why-would-both-a-parent-and-child-class-implement-the-same-interface
“从技术上说,这是多余的”

一些猜想,可能是为了代码可读性,文档编制工具或者重构工具的识别(那个问题有提到)等别的考量吧。