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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© vipzh 中级黑马   /  2012-12-2 12:58  /  1307 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

为什么在用List的时候new 的是一个ArrayList或linkList,而不用List呢?

评分

参与人数 1技术分 +1 收起 理由
杨千里 + 1 鼓励一下 多努力

查看全部评分

6 个回复

倒序浏览
List只是一个接口,ArrayList和LinkList是list的子类实现,new的话肯定是new 它的子类啦!
这是面向接口的一种编程思想!
回复 使用道具 举报
List只是一个接口,ArrayList和LinkList是list的子类实现,接口不能直接使用,必须实现接口中的方法,才能使用。就像有一个接口,其方法是public void eat();
要用eat()的话,肯定要实现eat(),同理,要使用List中的方法,只能到list的子类实现中找
回复 使用道具 举报
List    alist = new ArrayList()  多态
回复 使用道具 举报
这是父类的引用指向子类对象的运用
父类引用指向子类对象解释:父类的引用也可以接收自己的子类对象
//只有此时才能进行上下转型
A a = new B() ; //这是向上转型
A是我们的引用类型,他是父类,B是子类。
a是一个子类对象,但是引用的是父类的类型。
List接口必须要让它的子类来实现
回复 使用道具 举报
List是接口,接口就是特殊的抽象类,里面只有方法的声明而没有具体的实现,new创建实例是需要明确的行为,没有明确的行为还怎么实例化
回复 使用道具 举报
这涉及到一个多态的问题。父类的引用指向子类对象。这样就方便程序调用子类的功能,增强了程序的扩展性。而list是一个接口,接口不能实例化。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马