You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
56 lines
1.9 KiB
56 lines
1.9 KiB
// 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("--- 所有车辆已停止 ---");
|
|
}
|
|
}
|