日期:2014-05-20  浏览次数:20948 次

面试题:关于list的问题?
List arr1 = new ArrayList();和
ArrayList arr2 = new ArrayList()
有什么区别?

------解决方案--------------------
1 ArrayList arr2 = new ArrayList();
这个对象arr2只是类ArrayList的一个对象。只能操作ArrayList提供的方法。

2 而List arr2=new ArrayList(); arr2 可以操作ArraList重写了的 接口List的方法。
(如果强转后可以达到上面1的效果。)。

但其优点是,可以实现多态:
还可以这样重新定义:arr2=new LinkedList();
arr2=new Vector();
ArrayList(),LinkedList(),Vector()对于重写了接口List的方法,比如add(),
可以统一使用arr2.add().
而上面1的方法就不行。(不能 arr2=New LinkedList()).