1、泛型类
泛化:<> 泛化类型
作用:安全 省心
泛型类: 类名<字母,...> T E K V
注意:定义时不能用在非静态成员变量上,使用时不能使用基本类型
泛型接口:接口名<字母,...>
注意:只能用在抽象方法上,因为成员变量是静态的。
泛型方法:<字母> 加在返回值前面。
泛型是可以有继承的 <字母 extends ClassA> 限制泛型只能是ClassA类或者ClassA的子类。
2、泛型的继承与实现
保留:泛型子类
不保留:按需实现,可以是泛型子类,也可以是非泛型子类
属性|方法:随声明位置而定
3、泛型的擦除:使用|继承|实现 没有指定类型,类似于Object,但不等于Object(由于未指定类型,所以不进行类型检查,如果指定为Object就会进行类型检查)。
4、泛型通配符: ?
只能用于变量声明或者形参,不能用于其他比如类声明、接口声明、对象创建等。
5、泛型上限:extends
泛型下限:super
6、泛型没有多态、没有数组、jdk1.7之后泛型创建对象可以省略<>内的类型
泛化:<> 泛化类型
作用:安全 省心
泛型类: 类名<字母,...> T E K V
注意:定义时不能用在非静态成员变量上,使用时不能使用基本类型
泛型接口:接口名<字母,...>
注意:只能用在抽象方法上,因为成员变量是静态的。
泛型方法:<字母> 加在返回值前面。
泛型是可以有继承的 <字母 extends ClassA> 限制泛型只能是ClassA类或者ClassA的子类。
2、泛型的继承与实现
保留:泛型子类
不保留:按需实现,可以是泛型子类,也可以是非泛型子类
属性|方法:随声明位置而定
3、泛型的擦除:使用|继承|实现 没有指定类型,类似于Object,但不等于Object(由于未指定类型,所以不进行类型检查,如果指定为Object就会进行类型检查)。
4、泛型通配符: ?
只能用于变量声明或者形参,不能用于其他比如类声明、接口声明、对象创建等。
5、泛型上限:extends
泛型下限:super
6、泛型没有多态、没有数组、jdk1.7之后泛型创建对象可以省略<>内的类型