Java 多态性示例:Vehicle、Car 和 Ship 类

本示例演示了 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 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('左');
		}
	}
}

代码分析

  1. 定义类: 代码定义了三个类:VehicleCarShip。其中,CarShip 类继承自 Vehicle 类。
  2. 方法重写: CarShip 类分别重写了 Vehicle 类的 swervestart 方法,实现了方法的个性化行为。
  3. 多态性:TestPolymorphDemo 类中的 main 方法中,创建了一个 Vehicle 类型的数组 vh,并用 VehicleCarShip 的实例初始化。在循环中,通过 vh 数组依次调用每个元素的 startswerve 方法。由于 vh 数组中每个元素的实际类型可能是 VehicleCarShip,根据多态的特性,会根据实际类型来确定调用的方法。

运行结果

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

代码解释

  • 第 1 行: Vehicle 类已经启动,调用的是 Vehicle 类中的 start 方法。
  • 第 2 行: Vehicle 类开始向左转,调用的是 Vehicle 类中的 swerve 方法。
  • 第 3 行: Car 类已经启动,调用的是 Car 类中重写的 start 方法。
  • 第 4 行: Car 类开始向左转,调用的是 Car 类中重写的 swerve 方法。
  • 第 5 行: Ship 类已经启动,调用的是 Ship 类中重写的 start 方法。
  • 第 6 行: Ship 类开始向左转,调用的是 Ship 类中重写的 swerve 方法。

总结

本示例通过简单的代码展示了 Java 多态性的基本应用。多态性是面向对象编程中非常重要的概念,它可以提高代码的可扩展性和可维护性。通过多态,我们可以使用相同的代码来处理不同的对象类型,而无需编写大量的重复代码。


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

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