# AI 交互记录 - Vehicle 抽象类与多态实现 ## 任务描述 定义一个抽象父类 Vehicle,包含抽象方法 run(),实现 Car、Bike、Truck 三个子类。在主方法中创建 Vehicle 数组,存放不同的车辆,遍历调用 run()。 ## 交互过程 ### 第一步:需求分析 - **用户请求**:创建抽象类和子类的完整示例,需要从新建文件开始的分步指导 - **关键要求**: - 抽象父类 Vehicle 包含抽象方法 run() - 三个子类:Car、Bike、Truck - 使用多态:Vehicle 数组存放不同车辆对象 - 遍历调用 run() 方法 ### 第二步:代码生成指导 #### 1. 创建抽象父类 Vehicle.java public abstract class Vehicle { public abstract void run(); } **要点**:使用 `abstract` 关键字定义抽象类和抽象方法 #### 2. 创建 Car 子类 Car.java #### 3. 创建 Bike 子类 Bike.java #### 4. 创建 Truck 子类 Truck.java #### 5. 创建测试类 TestVehicle.java ## 涉及的核心知识点 1. **抽象类(Abstract Class)** - 使用 `abstract` 关键字 - 不能直接实例化 - 可以包含抽象方法(无方法体) 2. **继承(Inheritance)** - 使用 `extends` 关键字 - 子类必须实现父类的所有抽象方法 - 使用 `@Override` 注解标记重写方法 3. **多态(Polymorphism)** - 父类引用指向子类对象 - `Vehicle[]` 数组可以存放任何 Vehicle 的子类对象 - 运行时根据实际对象类型调用对应的方法 4. **增强 for 循环** - 简化数组/集合的遍历 - 语法:`for (类型 变量 : 数组)` ## 预期运行结果