当我看到的ArrayList
是否有即使父类实现相同的接口实现子类中的接口任何好处
class ArrayList<E> extends AbstractList<E>
implements List<E>, RandomAccess, Cloneable, java.io.Serializable
它实现List
接口声明即使ArrayList
的超AbstractList
实现同样的List
接口。
abstract class AbstractList<E> extends AbstractCollection<E> implements List<E>
类似的声明可以在HashMap
,LinkedHashMap
声明也被发现。
在LinkedHashMap
声明,它实现Map
接口,而不是由它的超HashMap
实现的其他接口。
所以有这样的声明可能有一些好处。
如果做更清楚的是唯一的好处,那么LinkedHashMap中甚至可能实现Cloneable,Serializable接口接口。但它没有。 – 2013-04-05 12:34:46
@CharlesGreenWay我通常会写'地图<..>地图=新的LinkedHashMap <>()',但很少'Cloneable的复制,则=新的LinkedHashMap <>()'...一个'LinkedHashMap'主要是'Map',虽然它实现其他接口也是如此。 – 2013-04-05 12:37:19
感谢@Heuster解释。这也是为了兼容性(即)如果将来,HashMap没有实现Map(尽管这可能不会发生),那么LinkedHashMap仍然可以实现Map – 2013-04-05 12:48:29