泛型类、泛型方法、泛型接口

泛型只支持引用数据类型

引例:

当ArrayList没有泛型时,所有对象默认是Object类

没有泛型时,利用多态(object)可以存储任意数据类型的对象.

多态的弊端:不能访问子类的特有功能!!!如果我传入的是字符串,无法调用字符串的.length等功能

如果考虑将object强转,当传入多个对象时,不知道该强转哪个。

泛型的好处:数据类型统一,避免强转异常

泛型为什么不能接收基本数据类型?

Java的泛型是伪泛型,在编译时判断是不是定义泛型的数据结构,但真正执行时,又会将所有对象变为object类(泛型的擦除),所以对象不能是基本数据类型,因为无法转成object类型。

泛型的细节

泛型类:定义在类后面

1、一个类中,某个变量数据类型不确定时,可以定义泛型类

例子:

泛型方法:方法中形参不确定,可以使用类名后面定义泛型<E>,或者下图方法(针对某一个方法形参的泛型)

例子1:

例子2:创建对象必须给出明确数据类型,其泛型数据类型,在方法被调用时即被确定

补充:添加的数据无限制:E...e

与类泛型区别:

泛型接口:两种情况

1、实现类明确数据类型时,接口泛型直接确立确立,实现类无需定义数据类型,如下图

2、实现类也不知道数据类型时:创建实现类时,必须给出数据类型(与泛型类似)

泛型通配符:限定类型的范围

为什么要有这个?

        泛型不具有继承性,而数据具有继承性,如下:

但是,如果要是利用泛型方法的话,会导致所有类都可以调用这个方法,如下,这个student和我们的其他类没有任何关系,我们不想这样

所以我们希望:所以有了通配符,及两种格式

应用场景:确定传递某个继承体系的时候

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值