java集合接口中的继承

fra*_*liu 7 java collections interface

Java集合接口中存在一些继承关系.例如,Collection<T>接口将扩展Iterable<T>.我检查了JDK中的源代码,基类中定义的一些方法在子类中多次重复.例如: Interable<T>接口中定义的方法 Iterator<E> iterator();,但在接口Collection<E>List<T>,也含有相同的方法.根据我的理解,由于继承用于减少重复,为什么我们应该在子类中定义相同的方法?

Nai*_*gun 5

请参阅java.util.List

"List接口在迭代器,add,remove,equals和hashCode方法的合同上放置了除Collection接口中指定的规则之外的其他规定.为方便起见,此处还包括其他继承方法的声明."


Ram*_*PVK 0

Iterable接口稍后推出since 1.5。因此,在此版本之前,只有java.util.Collection子类用于实现iterator().

后来iterator()通过引入接口而成为标准Iterable,使得任何可迭代的类都可以实现该接口。

引入Iterable接口后,Collection还对接口进行了扩展Iterable,使Collection接口也实现了标准接口。

对于前,

  • java.sql.SQLException还实现了Iterable