六、泛型
1.(类型参数)可以声明在类、接口、静态方法中,使用则是在new对象时(实际参数)
2.<?>:通配符类型
3.什么时候用泛型:当某个(些)类/接口的非静态方法的形参类型不确定,需要在创建对象或子类继承时才能确定
4.类和接口中类型变量-泛型不能用于静态成员,但是某个方法形参类型不确定时,这个静态方法可以单独定义<类型变量>;
5.实际参数必须为引用数据类型,不能为基本数据类型
6.子类继承或者实现泛型父类时,指定对应实际类型参数后,将不再是泛型类,若指定类型变量,则仍然为泛型
7.指定泛型实参时,必须左右两边一致,不存在多态
8.<类型变量 extends 上限>---如果多个上限中有类有接口,那么只能有一个类,而且必须写在最左边。接口的话,可以多个。
如果在声明<类型变量>时没有指定任何上限,默认上限是java.lang.Object。
super 下限
9.泛型擦除:当使用参数化类型接口或者类时,没有指定泛型,则自动按照最左边的第一个上限处理。