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 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开始向左转
解释:
- 创建 Vehicle 数组: 代码首先创建了一个长度为 3 的
Vehicle类型的数组vh,并分别将Vehicle、Car和Ship的实例赋值给数组的元素。 - 使用 for 循环: 使用
for循环遍历数组vh,依次调用每个元素的start()方法和swerve()方法。 - 多态性: 关键在于,虽然
vh数组的类型是Vehicle,但它实际上存储了Vehicle、Car和Ship的实例。当调用vh[i].start()和vh[i].swerve('左')时,程序会根据每个对象实际的类型调用对应类中的方法,这就是多态性的体现。 - 输出结果: 因此,代码会依次输出每个对象的
start()方法和swerve()方法的执行结果,分别为 "Vehicle已经启动"、"Vehicle 开始向左转"、"Car已经启动"、"Car开始向左转"、"Ship已经启动" 和 "Ship开始向左转"。
注意:
TestPolymorphDemo类中的main方法需要声明为static方法,才能正确运行代码。- 多态性是面向对象编程的重要概念,它允许程序根据对象的实际类型调用不同的方法,提高代码的灵活性和可扩展性。
原文地址: https://www.cveoy.top/t/topic/pbEC 著作权归作者所有。请勿转载和采集!