请叫高手:一个基础问题
List contentIdList = new ArrayList();
ArrayList contentIdList = new ArrayList();
List contentIdList=null
上面三中定义的区别在那里?
问题点数:50、回复次数:5Top
1 楼interpb(曾曾胡,深怕情多累美人!)回复于 2006-03-03 14:42:35 得分 0
List contentIdList = new ArrayList(); //定义一个接口的引用,实际指向一个接口的实现类
的对象
通过 contentIdList 只能调用接口中的方法,不能
调用 ArrayList中的扩充的方法
最常用的定义方式
ArrayList contentIdList = new ArrayList(); //就是定义一个ArrayList 引用,并创建一个
ArrayList 的对象,没有上面的定义的限制
但可移植差,不推荐
List contentIdList=null //定义一个引用,没有指向任何实际的对象,
还需要赋值后才能调用方法,不然有空指针异常
另外,第一种就相当于,下面的组合写法
List contentIdList=null ;
contentIdList = new ArrayList();
Top
2 楼TK2006(改个名,好听点~~)回复于 2006-03-03 14:50:32 得分 0
上楼的讲的很清楚了了
Collection
├List
│├LinkedList
│├ArrayList
│└Vector
│ └Stack
└Set
Top
3 楼liukang520236(【从不上CSDN的全自动智能灌水机】)回复于 2006-03-03 14:51:55 得分 0
楼上超强!
偷学到了!
赶紧闪人!
Top
4 楼crazycy(崔毅,blog:http://www.blogjava.net/crazycy/)回复于 2006-03-03 14:53:15 得分 0
(a)List contentIdList = new ArrayList();
(b)ArrayList contentIdList = new ArrayList();
(c)List contentIdList=null
//////////////////////////
java中推崇面向接口编程,也就是说构造具体类的实例的话,要用具体类的构造函数,但是返回给消费客户端应该返回抽象类实例或者接口类实例;(a)满足这个原则,(b)不满足这个原则;(c)只是声明了一个引用,这个引用将指向List型的对象。Top
5 楼bysp(白杨树皮)回复于 2006-03-03 15:04:56 得分 0
studyTop




