当前位置: 首页 > news >正文

认识泛型、泛型类和泛型接口

目录

  • 泛型
    • 泛型类
    • 泛型接口

泛型

定义类、接口、方法时,同时声明了一个或者多个类型变量(如:<E>),称为泛型类、泛型接口、泛型方法、它们统称为泛型

作用:泛型提供了在编译阶段约束所能操作的数据类型,并自动进行检查的能力!这样可以避免强制类型转换,以及可能出现的异常

本质:把具体的数据类型作为参数传递给类型变量

泛型类

修饰符 class 类名<类型变量,类型变量,…>{
}

public class ArrayList<E>{...}

如下是自定义泛型类:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

多个类型变量

在这里插入图片描述

在这里插入图片描述

变量继承情况

在这里插入图片描述
这里的Cat类必须继承Animal
在这里插入图片描述

package generics;public class Demo2 {public static void main(String[] args) {MyArrayList<String> stringMyArrayList = new MyArrayList<>();stringMyArrayList.add("java");System.out.println(stringMyArrayList.get(0));}
}
package generics;public class MyArrayList<K> {private Object[] arr = new Object[10];private int size;public boolean add(K k){arr[size++] = k;return true;}public K get(int index){Object o = arr[index];return (K) o;}}

泛型接口

修饰符 interface 接口名<类型变量,类型变量,...>{
}

public interface A<E>{}

注意:类型变量建议用大写的英文字母,常用的有:E、T、K、V等

在这里插入图片描述
在这里插入图片描述

package generics;import java.util.ArrayList;public interface Data <E>{void add(E e);ArrayList<E> getData(String name);}
package generics;import java.util.ArrayList;public class Demo4 implements Data<Cat> {@Overridepublic void add(Cat cat) {}@Overridepublic ArrayList<Cat> getData(String name) {return null;}
}

这里也支持变量继承

在这里插入图片描述

http://www.dtcms.com/a/299911.html

相关文章:

  • 服务器生成图片
  • 力扣872. 叶子相似的树
  • Ubuntu系统安装EasyTier组网
  • rt-thread 5.2.1 基于at-start-f437开发过程记录
  • Flutter开发 BUG 记录 (持续更新)
  • [特殊字符] 嵌入式队列精要指南:数据流的艺术与实战
  • Python爬虫实战:研究furl库相关技术
  • 阿里开源Qwen3-Coder,编程大模型进入高效时代
  • 文件操作认识
  • 差模干扰 共模干扰
  • QUIC协议如何在UDP基础上解决网络切换问题
  • PCIe 的L状态(链路状态)和D状态(设备状态)
  • 命令行创建 UV 环境及本地化实战演示—— 基于《Python 多版本与开发环境治理架构设计》的最佳实践
  • oracle数据库表空间碎片整理
  • 基于java的在线教育平台管理系统、在线学习系统的设计与实现
  • 图解同步/异步,阻塞/非阻塞,五种模型之差
  • 【AcWing 830题解】单调栈
  • Node.js 模拟 Linux 环境
  • 栈----2.最小栈
  • S7-200 SMART 数字量 I/O 组态指南:从参数设置到实战案例
  • OpenFeign-远程调用
  • 解决英文版Windows10安装WireShark报错
  • 秋招Day19 - 分布式 - 分布式设计
  • MySQL事务原理
  • C 与 C++ 的区别:发展、特性及优缺点详解
  • [1+2cos(ω)+2cos(2ω)+……+2cos(Nω)]sin(ω/2)=sin[(ω+1/2)N]
  • 【学习路线】Linux从入门到精通:系统化学习路线指南
  • 亚马逊测评采购:如何打造安全的环境,技术基础关键
  • Linux应用开发基础知识——Framebuffer应用编程(六)
  • 栈算法之【有效括号】