Java学习笔记(泛型1)

泛型产生的背景

案列:

由于学生成绩存在多种类型,直接定义Object属性存放。

存入整数成绩

在获取值时强转成int 和 String类。此时不会报错

但是运行时抛出异常

原因是强制转换成String类型转换时出现异常,还需要加上手工类型检查

在使用Object发生多态行为的时候,不仅需要强制类型转换,还需要手动类型检查  为了避免这样 的问题 所以这里就引入了泛型


上面的案列使用类型

定义泛型类Student

使用时指定类型,这里的类型只能使用引用类型,不能使用基本类型。

类型自动检查  setJavaScore  里面的值只能存字符串类型

类型自动转换

泛型类不能使用在静态属性、静态方法上  因为泛型是在使用时确认,但是静态方法属性是在编译时确定

泛型方法,只能 访问对象信息,不能修改信息

子类泛型类的几种情况

1、子类声明时指定具体类型

2、子类为泛型类,类型在使用时确认

3、子类为泛型类,父类不指定类型,泛型的擦除,使用Object替换

4、子类父类同时擦除

子类父类要么同时擦除,要么子类大于等于父类的类型。不可以子类擦除,父类泛型

属性的类型随位置而定,在子类中随子类定,在父类中随父类定。如果在重写的方法中,统一随父类而定。

泛型接口与继承同理

注:擦除不会类型检查

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容