这段代码演示了 Java 中的多态性的概念,使用 Vehicle、Car 和 Ship 类作为示例。

class Vehicle {
	public void swerve(String str) {
		System.out.println('Vehicle 开始向' + str + '转');
	}

	public void start() {
		System.out.println('Vehicle已经启动');
	}
}

class Car extends Vehicle {
	public void swerve(String str) {
		System.out.println('Car开始向' + str + '转');
	}
	public void start() {
		System.out.println('Car已经启动');
	}
}

class Ship extends Vehicle {
	public void swerve(String str) {
		System.out.println('Ship开始向' + str + '转');
	}
	public void start() {
		System.out.println('Ship已经启动');
	}

}
public class TestPolymorphDemo {
	public static void main(String[] args) {
		Vehicle[] vh = new Vehicle[3];
		vh[0] = new Vehicle();
		vh[1] = new Car();
		vh[2] = new Ship();

		for (int i = 0; i < vh.length; i++) {
			vh[i].start();
			vh[i].swerve('左');
		}
	}
}

代码结果:

Vehicle已经启动
Vehicle 开始向左转
Car已经启动
Car开始向左转
Ship已经启动
Ship开始向左转

解释:

  1. 创建 Vehicle 数组: 代码首先创建了一个长度为 3 的 Vehicle 类型的数组 vh,并分别将 VehicleCarShip 的实例赋值给数组的元素。
  2. 使用 for 循环: 使用 for 循环遍历数组 vh,依次调用每个元素的 start() 方法和 swerve() 方法。
  3. 多态性: 关键在于,虽然 vh 数组的类型是 Vehicle,但它实际上存储了 VehicleCarShip 的实例。当调用 vh[i].start()vh[i].swerve('左') 时,程序会根据每个对象实际的类型调用对应类中的方法,这就是多态性的体现。
  4. 输出结果: 因此,代码会依次输出每个对象的 start() 方法和 swerve() 方法的执行结果,分别为 "Vehicle已经启动"、"Vehicle 开始向左转"、"Car已经启动"、"Car开始向左转"、"Ship已经启动" 和 "Ship开始向左转"。

注意:

  • TestPolymorphDemo 类中的 main 方法需要声明为 static 方法,才能正确运行代码。
  • 多态性是面向对象编程的重要概念,它允许程序根据对象的实际类型调用不同的方法,提高代码的灵活性和可扩展性。
Java 多态性示例:Vehicle、Car、Ship 类演示

原文地址: https://www.cveoy.top/t/topic/pbEC 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录