为什么很多程序都写成Collection c = new ArrayList();而非 ArrayList c = new ArrayList(),求高手指点,最好通俗易懂,谢谢。
Collection是上层抽象,ArrayList是上层抽象的实例。上层抽象定义了接口,实例定义了具体实现。为了能统一处理不同的实例,直接用抽象类型来处理会比较统一。比如一个循环里既有ArrayList容器,也有其他容器,但它们都是Collection。循环起来就很方便。不然的话,对象类型都不一样,没法循环了。
面向接口编程而不是具体的实现,这样的话如果有一天把ArrayList换成LinkedList或者其他的东东,对于使用Collection的代码来说毫无所知不需要修改也能跑的好好的