黑马程序员技术交流社区

标题: 基础 [打印本页]

作者: vipzh    时间: 2012-12-2 12:58
标题: 基础
为什么在用List的时候new 的是一个ArrayList或linkList,而不用List呢?
作者: pphdsny3    时间: 2012-12-2 13:13
List只是一个接口,ArrayList和LinkList是list的子类实现,new的话肯定是new 它的子类啦!
这是面向接口的一种编程思想!
作者: 邱峁    时间: 2012-12-2 15:29
List只是一个接口,ArrayList和LinkList是list的子类实现,接口不能直接使用,必须实现接口中的方法,才能使用。就像有一个接口,其方法是public void eat();
要用eat()的话,肯定要实现eat(),同理,要使用List中的方法,只能到list的子类实现中找
作者: 杨千里    时间: 2012-12-2 15:34
List    alist = new ArrayList()  多态
作者: 彭璞    时间: 2012-12-2 18:51
这是父类的引用指向子类对象的运用
父类引用指向子类对象解释:父类的引用也可以接收自己的子类对象
//只有此时才能进行上下转型
A a = new B() ; //这是向上转型
A是我们的引用类型,他是父类,B是子类。
a是一个子类对象,但是引用的是父类的类型。
List接口必须要让它的子类来实现

作者: 杨永胜    时间: 2012-12-2 19:06
List是接口,接口就是特殊的抽象类,里面只有方法的声明而没有具体的实现,new创建实例是需要明确的行为,没有明确的行为还怎么实例化
作者: 马纵驰    时间: 2012-12-4 13:03
这涉及到一个多态的问题。父类的引用指向子类对象。这样就方便程序调用子类的功能,增强了程序的扩展性。而list是一个接口,接口不能实例化。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2