Java实现泛型功能,如何操作?

摘要:实现  是类对接口行为规范的 '兑现',核心作用是弥补单继承不足、定义行为标准,是接口多态的基础;泛型 参数化类型,编译时检查类型安全,消除强制转换,核心是类型参数(T
上次我们聊了 Java面向对象的三大特性,封装、继承、多态。今天我们来聊聊 实现、泛型。 一、实现(implements) 定义:"实现"是 Java 中类与接口(Interface) 之间的关系,关键字是 implements。接口是一组 "行为规范"(只定义方法签名,不包含具体实现),而实现类需要兑现这些规范,即编写接口中所有抽象方法的具体逻辑。 类比:接口 = 一份 "合同"(比如 Runnable 接口规定 "必须有 run () 方法"),实现类 = 签约方(比如 MyThread 类实现 Runnable,必须写 run () 的具体代码,兑现合同)。 作用: 弥补 Java 单继承的不足:一个类只能继承 1 个父类,但 可以实现多个接口(比如class A extends B implements C, D),实现 "多继承"的效果; 定义行为标准:接口封装 "能做什么",实现类负责 "怎么做",解耦行为规范和具体实现; 接口多态的核心基础。 示例代码: // 1. 定义接口:封装行为规范(只有方法签名,无实现) public interface AnimalBehavior { // 抽象方法:无方法体 void eat(); void move(); // 默认方法(JDK8+):有默认实现,实现类可重写 default void breathe() { System.out.println("动物呼吸空气"); } } // 2. 实现类:必须实现接口的所有抽象方法 public class Dog1 implements AnimalBehavior { @Override public void eat() { System.out.println("狗啃骨头"); } @Override public void move() { System.out.println("狗跑"); } // 可选:重写接口的默认方法 @Override public void breathe() { System.out.println("狗用鼻子呼吸"); } public static void main(String[] args) { Dog1 dog1 = new Dog1(); dog1.eat(); // 输出:狗啃骨头 dog1.move(); // 输出:狗跑 dog1.breathe();// 输出:狗用鼻子呼吸 } } 二、泛型(Generics) 定义:参数化类型 —— 允许在定义类、接口、方法时使用 "类型参数",编译时指定具体类型,从而实现类型安全和代码复用。 类比:快递箱(泛型类)可以装任何物品(类型参数),你在使用时指定装 "书籍"(String)或 "电子产品"(Integer),箱子就只接受对应类型,避免装错。 作用: 类型安全:编译时检查类型,避免运行时 ClassCastException(强制类型转换异常); 代码复用:一套代码支持多种类型,无需为不同类型重复编写; 消除冗余的强制类型转换。
阅读全文