在java中的集合
List<Integer> c1=new Arraylist<Integer>
这里,c1是List类型的对象,它是一个接口,我们不能创建该接口的对象?
有人可以向我解释一下吗?
答案 0 :(得分:5)
变量c1
的类型为List<Integer>
。这只意味着c1
在任何时候的值都必须是null
,或者是对类型实现List
的对象的引用。
但是,c1
在执行时引用的对象的类型为ArrayList
。 (由于类型擦除,它不知道它被构造为ArrayList<Integer>
。)
区分三个概念非常重要:
c1
)。变量在编译时具有类型。c1
)c1
的值所指的对象)。对象在执行时具有类型(在此之前它不存在)。如果你可以将这三个直接保持在脑海中,它会使很多事情(如参数传递,作业等)变得更加简单。
答案 1 :(得分:1)
一个对象&#34;是&#34;它所对应的对象,及其所有基类,以及它及其基类实现的所有接口。