public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, java.io.Serializable在ArrayList的声明中,其继承了抽象类AbstractList,该抽象类已经实现了List<E>接口,所以 ArrayList<E>也就等于实现了List<E>接口。
那么为什么在声明中还需要再次声明实现List<E>接口??????????
那么为什么在声明中还需要再次声明实现List<E>接口??????????
你可以学下
go javafor.com
2. 降低维护成本,如果哪天AbstractList不在实现List接口,我也不会受到影响。 比如说,你老爸可以继承你爷爷一套房子, 你也有权继承你老爸的房子,也有权继承你爷爷的房子。这些都是资产。但是,假如你老爸因为做生意亏了N钱,把自己的房子卖给了银行,还欠一屁股债。 那么这时候,你爷爷害死不可能把他的那一套房子再搭进去了,这时候你就只能直接继承你爷爷的房子,而不是你老爸继承过来再给你。
这里ArrayList差不多一个意思吧,如果哪天你的AbstractList报废了,那么至少你还有得LIST用。