泛型(集合进阶第三部分)

泛型

0.泛型不能存储基础数据类型
1.如果集合(ArryList之类的)没有泛型修饰,那么里面能输入的类型就是object(所有类型都能输入)

2.object类型是父类,遵循多态的规则(变量左左,方法左右),不能调用子类的专属方法,强转可能会时出错

3.泛型的原理:

  • 存入数据的时候,判断数据和泛型的数据是否是一类的
  • 存入过后将数据变为object类型存储(类型的擦除)。
  • 调用的时候再强转回来,

屏幕截图 2025-12-22 144723

4.泛型类

  • 定义
    屏幕截图 2025-12-22 145133

  • 结构
    屏幕截图 2025-12-22 145414

  • 调用
    屏幕截图 2025-12-22 145645

5.泛型方法

  • 定义
    屏幕截图 2025-12-22 145858

6.泛型接口

  • 定义
    屏幕截图 2025-12-22 150953
  • 使用方法
    1.实现类给出具体的类型

屏幕截图 2025-12-22 151515

屏幕截图 2025-12-22 151541

2.实现类延续泛型,创建对象是再确定

屏幕截图 2025-12-22 151653

屏幕截图 2025-12-22 151621

7.泛型的通配符(可以限定类型的范围)

  • 产生的原因
    1.泛型不具备继承性,但是数据具备继承性
    泛型不具备继承性,传递的集合只能是本身,泛型是子类也不行
    屏幕截图 2025-12-22 153413
    但是数据具备继承性
    屏幕截图 2025-12-22 153728

2.泛型不确定类型,什么类型的数据都能进入。但是程序希望只能传递一个类和它的子类或者子类。

  • 通配符:
    1.? extends E:表示可以传递E和E所有的子类类型
    2.? super E:表示可以传递E和E所有的父类类型
    sp:‘?’表示不确定的类型,用它可以不在修饰符后面加,你要在方法的修饰符后面加,也是一个效果
posted @ 2025-12-22 15:46  水水日  阅读(1)  评论(0)    收藏  举报