认识泛型
泛型的格式:<数据类型>
注意:数据类型只能是引用数据类型,所以如果想要用int的话,要用对他进行包装
作用:限定形参范围
细节:传入数据可以传入该泛型类型或者其子类类型,如下图所示
泛型种类
泛型类
当一个类,某个变量数据类型不确定的时候,我们就可以定义带有泛型的类
具体代码如下图
我们来如何理解这个呢?
其实很好理解,我们就是把这个E当作为一种可以为任意数据类型的一种数据类型
那如何创建对象呢?
因为这个是泛型类,所以我们在创建对象的时候我们必须指定数据类型,如下图代码
当我们创建这个MyArraylist对象是指定了泛型为String所以MyArraylist类中的E就会被这个String
给替代,所以我们就可以把E看作为String了
泛型方法
泛型方法,就是用于方法形参类型不确定时
使用泛型方法有两种方法
第一种方法就是我们介绍的泛型类
第二种代码如下
泛型接口
泛型接口如下图
如何使用?
方法一:
流程:创建一个类作为接口的实现类,接收这个接口并给定泛型类型,如上图中implements List<String>
方法二:
流程:在实现类给定的泛型是E,所以我们可以在创建对象时进行确定接口类型,如上图主函数的对象创建时给定了泛型为String
泛型的继承
泛型的继承特点:不具有继承性,但是数据具备继承性
不具有继承性如何理解,见下图
泛型指定为Ye但是他的子类传入时,会报错
如何理解数据具备继承性?
如图当我们传递的是之类的数据时,不会报错
泛型的通配符
它的表示形式就是一个?号,如图所示
?extends E和?super E指定的范围如图所示