// 1. 定义抽象父类 Vehicle abstract class Vehicle { // 定义一个抽象方法 run() // 抽象方法没有方法体(只有分号),必须在非抽象的子类中被实现 public abstract void run(); } // 2. 定义子类 Car,继承自 Vehicle class Car extends Vehicle { // 必须实现 (Implement) 父类的抽象方法 run() @Override public void run() { System.out.println("小汽车在高速公路上飞驰..."); } } // 3. 定义子类 Bike,继承自 Vehicle class Bike extends Vehicle { // 必须实现 (Implement) 父类的抽象方法 run() @Override public void run() { System.out.println("自行车在乡间小路上骑行..."); } } // 4. 定义子类 Truck,继承自 Vehicle class Truck extends Vehicle { // 必须实现 (Implement) 父类的抽象方法 run() @Override public void run() { System.out.println("大卡车在重载货物,缓慢行驶..."); } } // 5. 主测试类 public class VehicleTest { public static void main(String[] args) { // 创建一个 Vehicle 类型的数组,用于存放不同的车辆对象 // 数组的大小为3,因为我们有三类车 Vehicle[] garage = new Vehicle[3]; // 向数组中存入不同子类的实例 garage[0] = new Car(); garage[1] = new Bike(); garage[2] = new Truck(); // 遍历数组,并调用每个元素的 run() 方法 System.out.println("--- 车辆开始运行 ---"); for (Vehicle v : garage) { // 这里同样体现了多态 // 虽然 v 的编译时类型是 Vehicle,但运行时会根据其实际对象类型(Car, Bike, Truck)调用相应的方法 v.run(); } System.out.println("--- 所有车辆已停止 ---"); } }