2 qq 33880962 qq_33880962 于 2016.09.18 20:15 提问

java中关于容器的问题

为什么很多程序都写成Collection c = new ArrayList();而非 ArrayList c = new ArrayList(),求高手指点,最好通俗易懂,谢谢。

2个回答

coding_hello
coding_hello   2016.09.18 20:36

Collection是上层抽象,ArrayList是上层抽象的实例。上层抽象定义了接口,实例定义了具体实现。为了能统一处理不同的实例,直接用抽象类型来处理会比较统一。比如一个循环里既有ArrayList容器,也有其他容器,但它们都是Collection。循环起来就很方便。不然的话,对象类型都不一样,没法循环了。

cangyingzhijia
cangyingzhijia   2016.09.18 21:12

面向接口编程而不是具体的实现,这样的话如果有一天把ArrayList换成LinkedList或者其他的东东,对于使用Collection的代码来说毫无所知不需要修改也能跑的好好的

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!