第10节 学生选课—应用泛型管理课程(二)
前面的知识:
如果子类的构造方法中没有显示调用父类的构造方法,则系统默认调用父类的无参构造方法
如果显示的调用构造方法,必须在子类的构造方法的第一行
如果子类的构造方法中既没有显示调用父类的构造方法,而父类又没有无参的构造方法,则编译出错。
泛型集合中除了可以存入泛型类型还可以存入泛型的子类型对象实例
新建个ChildCourse类
package com.imooc.collection;
public class ChildCourse extends Course {
//父类定义了有参构造器,所以编译器不会为它自动添加隐式构造器。而子类必须要调用父类隐式构造器,所以
//为了避免这个错误,在父类手动添加一个无参构造器
}
//泛型结合可以添加泛型的子类型的对象实例
public void testChild(){
ChildCourse ccr=new ChildCourse();
ccr.id="3";
ccr.name="我是子类型的课程对象实例";
courses.add(ccr);
}
泛型集合中的限定类型不能使用基本数据类型。
可以通过使用包装类限定允许存入的基本数据类型
GenericTest类中
//泛型不能使用基本类型
public void testBasicType(){
//List<int> list=new ArrayList<int>(); //报错,不能用Int
List<Integer> list=new ArrayList<Integer>();
list.add(1);
System.out.println("基本类型的包装类作为泛型"+list.get(0));
}