为什么AbstractCollection同时实现Iterable和Collection?

时间:2015-06-01 22:48:32

标签: java collections interface

AbstractCollection实现了IterableCollection接口。但是,CollectionIterable子接口。让AbstractCollection实施Collection只是不够吗?

2 个答案:

答案 0 :(得分:4)

Javadocs for AbstractCollection可以解释为AbstractCollection 直接实施CollectionIterable

  

所有已实施的接口:

     

Iterable,Collection

但是,a quick look at the source code表示它只是直接实现Collection

public abstract class AbstractCollection<E> implements Collection<E> {

因此,必须将Javadoc解释为该类直接实现给定接口或间接。正如您所指出的那样,AbstractCollection无需直接实施Iterable,因为它已经实现了Collection。源代码显示它不直接实现IterableAbstractCollection只需直接实现Collection即可。

答案 1 :(得分:0)

是。这就足够了。但是,明确列出两者都允许(通过简单检查)告诉AbstractCollection实现IterableCollection(同样,因为它是abstract它不一定实现接口 - 但任何具体的子类都会。)