List <integer> c1 = new Arraylist <integer>什么类型的对象是c1 </integer> </integer>

时间:2014-03-18 18:44:12

标签: java

在java中的集合

List<Integer>  c1=new Arraylist<Integer> 

这里,c1是List类型的对象,它是一个接口,我们不能创建该接口的对象?

有人可以向我解释一下吗?

2 个答案:

答案 0 :(得分:5)

变量c1的类型为List<Integer>。这只意味着c1在任何时候的值都必须是null,或者是对类型实现List的对象的引用。

但是,c1在执行时引用的对象的类型为ArrayList。 (由于类型擦除,它不知道它被构造为ArrayList<Integer>。)

区分三个概念非常重要:

  • 变量(例如c1)。变量在编译时具有类型。
  • 引用(例如c1
  • 的值
  • 对象(例如c1的值所指的对象)。对象在执行时具有类型(在此之前它不存在)。

如果你可以将这三个直接保持在脑海中,它会使很多事情(如参数传递,作业等)变得更加简单。

答案 1 :(得分:1)

一个对象&#34;是&#34;它所对应的对象,及其所有基类,以及它及其基类实现的所有接口。

相关问题