Java 多态性示例:Vehicle、Car 和 Ship 类
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('左');
}
}
}
代码分析
- 定义类: 代码定义了三个类:
Vehicle、Car和Ship。其中,Car和Ship类继承自Vehicle类。 - 方法重写:
Car和Ship类分别重写了Vehicle类的swerve和start方法,实现了方法的个性化行为。 - 多态性: 在
TestPolymorphDemo类中的main方法中,创建了一个Vehicle类型的数组vh,并用Vehicle、Car和Ship的实例初始化。在循环中,通过vh数组依次调用每个元素的start和swerve方法。由于vh数组中每个元素的实际类型可能是Vehicle、Car或Ship,根据多态的特性,会根据实际类型来确定调用的方法。
运行结果
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 著作权归作者所有。请勿转载和采集!