当前位置: 代码迷 >> J2SE >> List list = new ArrayList(); 是什么意思?解决思路
  详细解决方案

List list = new ArrayList(); 是什么意思?解决思路

热度:11333   发布时间:2013-02-25 00:00:00.0
List list = new ArrayList(); 是什么意思??
这个是不是子类对象给父类引用??
与泛形很相关吗?

------解决方案--------------------------------------------------------
嗯 你理解的没错

不应该和泛型扯上关系吧 当然 你可以定义泛型
------解决方案--------------------------------------------------------
是的。
但是安全起见,可以直接指定要存储的类型。
比如我要往ArrayList中存String类型的数据:
List<String> list = new ArrayList<String>();
------解决方案--------------------------------------------------------
应该叫做用父类的引用指向子类的对象。

不过不是泛型。
------解决方案--------------------------------------------------------
no泛型,only引用
------解决方案--------------------------------------------------------

------解决方案--------------------------------------------------------
list有很多实现类 我们需要arraylist的一些性质 当然要new它的对象 这里应该有多态的感觉吧
------解决方案--------------------------------------------------------
兄弟们。。。都太有才了。。。
------解决方案--------------------------------------------------------
<T>这个东西是泛型的在jdk1.5之后出现的.
List list = new ArrayList();
这是个典型的向下转型,即多态性的表现.
因为list是一个接口,接口的方法需要被覆写才能够直接拿过来使用.
------解决方案--------------------------------------------------------
Animal a=new Monkey();

猴子也是动物的一种。
------解决方案--------------------------------------------------------
可以用来实现泛型List<type> list = new ArrayList<type>();
------解决方案--------------------------------------------------------
这样做应该为了程序的可扩展性。
父类实例化子类对象。
------解决方案--------------------------------------------------------
List是接口,new ArrayList是实例化

------解决方案--------------------------------------------------------
人 = 小明
------解决方案--------------------------------------------------------
探讨
List是接口,new ArrayList是实例化

------解决方案--------------------------------------------------------
List list = new ArrayList(); 
这是用父类的引用指向子类对象,与泛型没有关系。
面向接口编程都是这么写的。

就这一行代码并不能体现有什么好处
看下面的这个方法你应该就会明白

public void test(List list) {
//do something...
}

如果这个方法带的参数是ArrayList类型的,那么只有ArrayList的对象才可以传过来
而现在是用List做为参数,就表示只要是List接口的子类对象都可以传进来,如ArrayList,LinkedList,Vector



------解决方案--------------------------------------------------------
java 是面向接口编程的
------解决方案--------------------------------------------------------
List是一个接口,ArrayList是一个实现了List接口的具体类。
他们是父子关系,我们常用的是ArrayList,但常用List的引用去操作ArrayList
这是一个简单的面向接口编程的一种,如:List myList = new ArrayList();
------解决方案--------------------------------------------------------
就是JAVA中多态的体现
------解决方案--------------------------------------------------------
就是JAVA中多态的体现
------解决方案--------------------------------------------------------
多态性
------解决方案--------------------------------------------------------
List是接口,ArrayList是实现了List接口的类,大家都说了,呵呵!
------解决方案--------------------------------------------------------
面向接口编程,实现松耦合
------解决方案--------------------------------------------------------
OO思想的体现
------解决方案--------------------------------------------------------
探讨
<T>这个东西是泛型的在jdk1.5之后出现的.
List list = new ArrayList();
这是个典型的向下转型,即多态性的表现.
因为list是一个接口,接口的方法需要被覆写才能够直接拿过来使用.

------解决方案--------------------------------------------------------
  相关解决方案