一个关于接口的问题在java.util中的Collection接口有子接口List,List有其实现ArrayList类。那么Collection<E> a = new ArrayList<E>();和List<E> a = new ArrayList<E>();的区别是什么呢?