List是一个接口,ArrayList是实现List接口的类,ArrayList的定义如下:public class ArrayList extends AbstractListimplements List, RandomAccess, Cloneable, java.io.Serializable看出来了吗?ArrayList是implements List的,所以使用一个List接口的引用指向一个ArrayList类的对象,两者泛型类型自然必须保持一致。