A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 程序猿 中级黑马   /  2012-4-24 12:52  /  1874 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

创建一个arraylist。
看到毕老师写的是ArrayList al=new ArrayList();
以前看到其他的地方写得很多是 Array al=new ArrayList();
上面毕老师的我还能理解,下面的是为了做什么要用父类来创建对象呢?

3 个回复

倒序浏览
List可以有很多的实现,我们在使用的时候可能会用到不同的子类,用父类进行声明的话,如果实现类改了,只需要改下实例化的比分就可以,不用改变前面声明部分。
而且在写方法的时候,如果需要一个List的参数,我们不用去规定要实现那种类型的List实现,只需声明一个List 让方法调用者自由选用适当的实现就好。


如:List<Object> visited = new ArrayList<Object>
后期如果我要将一个LinkedList的对象XX赋值给visited ,只需要

visited=XX;而不用进行强制转换。


方法:

List test(List in)
{
   in.add("aaaa");
   in.remove(5);
   return  in;//就这个意思,我们就不用管传进来的List具体是什么对象,我们只需要声明个它的父类就可以了
}
回复 使用道具 举报
Array al=new ArrayList();这时是多态,向上转型。
回复 使用道具 举报
是有点多态的味道,我经常写的时候是
List<Object> list = null;

list = new ArrayList<Object>();

这样写的话,由于List实现不是有ArrayList和LinkedList吗

需要用哪个实现的就 new 一个就行了,就不用再再次声明了,

方便了不少
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马