2.jpg
前言
集合类库Collection中最常用的大概就是ArrayList了,List a = new ArrayList();也是很常见了~那么ArrayList和List究竟是什么关系?为什么要用如:List a = new ArrayList(); 这种方式创建新的ArrayList对象呢?这是几乎每个Java新人都会遇到的问题。本文不去讨论ArrayList的常见用法,而是重点看一下ArrayList的继承关系,它继承了哪些类?实现了什么接口?
首先,来看一下ArrayList:
List是一个接口,ArrayList是实现了List接口的实现类。那让我们来看一下源码中ArrayList的定义吧!(Java8)
public class ArrayList extends AbstractList
implements List, RandomAccess, Cloneable, java.io.Serializable{...}
可以看见ArrayList继承了AbstractList,实现了List、RandomAccess、Cloneable、Serializabl接口。所以现在,第一个问题就解决了:List是个接口,ArrayList实现了这个接口,这就是他们的关系,第二个问题先不讨论,留到以后。让我们先看一下ArrayList继承的抽象类AbstractList,和实现的其他几个接口吧!
AbstractList是一个抽象类,定义如下&#