AbstractCollection
实现了Iterable
和Collection
接口。但是,Collection
是Iterable
的子接口。让AbstractCollection
实施Collection
只是不够吗?
答案 0 :(得分:4)
Javadocs for AbstractCollection
可以解释为AbstractCollection
直接实施Collection
和Iterable
。
所有已实施的接口:
Iterable,Collection
但是,a quick look at the source code表示它只是直接实现Collection
。
public abstract class AbstractCollection<E> implements Collection<E> {
因此,必须将Javadoc解释为该类直接实现给定接口或间接。正如您所指出的那样,AbstractCollection
无需直接实施Iterable
,因为它已经实现了Collection
。源代码显示它不直接实现Iterable
。 AbstractCollection
只需直接实现Collection
即可。
答案 1 :(得分:0)
是。这就足够了。但是,明确列出两者都允许(通过简单检查)告诉AbstractCollection
实现Iterable
和Collection
(同样,因为它是abstract
它不一定实现接口 - 但任何具体的子类都会。)