为什么使用额外的显式'实现'子句?

问题描述:

在封装考虑类ArrayListAbstractList定义java.util中为什么使用额外的显式'实现'子句?

public class ArrayList<E> extends AbstractList<E> 
     implements List<E>, RandomAccess, Cloneable, java.io.Serializable 

public abstract class AbstractList<E> extends AbstractCollection<E> implements List<E> 

很明显,当AbstractList实现ListArrayList延伸AbstractList,则隐含ArrayList实现List

明确条款implements ListArrayList定义的目的是什么?

+0

就是这样,要**显式**。 –

使用源代码时,它允许立即查看该类实现的接口。

当然,也可以从父类的源代码中得出这个结论,但是直接声明可以省去在那里寻找(或者到JavaDoc中)的需要。当继承的接口在层次结构中非常高时,这可能更为重要,并且可能需要先查看多个父类,然后才能找到它,当父类的源代码不可用或者所讨论的接口是重要部分时即使在父类不再支持它的情况下也必须保持实施。