在看到Java集合,在使用泛型时,看到了如下的用法:
法:public List<Course> courses;
public TestGeneric(){
this.course = new ArrayList<Course>();
}
//当然,在这里course是一个自定义的课程类
看到这里时,构造器为什么要这样来使用,而不直接使用List来进行构造,原因在于:List是一个接口,而ArrayList是一个类,ArrayList继承并实现了List,所以List不能被构造,但可以像上面一样,用来创建一个引用,而ArrayList就可以被构造。
有时也会看到List lt = new ArrayList<Course>;这种向上转型的用法,此时它是一个List对象,有些ArrayList独有的方法,lt就不能再使用。之所以要这样用,是因为List有多个实现类,如果有一天需要改变实现类,只需要改变上面的一行即可。