4.(10分)编写一个Java程序,模拟多态,定义一个Vehicle类,有一个move() 方法,然后定义两个子类Car和Bicycle,分别重写move0方法,测试代码中使用 父类引用来调用子类方法,展不多态的效果。
时间: 2024-11-06 10:15:52 浏览: 3
Java设计一个银行帐户类(继承与多态)
5星 · 资源好评率100%
首先,让我们创建一个简单的Java程序,模拟多态。在这个例子中,我们将有三个类:Vehicle、Car和Bicycle,其中Vehicle是一个父类,Car和Bicycle是它的子类,并且每个子类都有自己的move()方法实现。
```java
// 父类 Vehicle
public class Vehicle {
public void move() {
System.out.println("Vehicle is moving");
}
}
// 子类 Car
public class Car extends Vehicle {
@Override
public void move() {
System.out.println("Car is driving");
}
}
// 子类 Bicycle
public class Bicycle extends Vehicle {
@Override
public void move() {
System.out.println("Bicycle is riding");
}
}
public class Main {
public static void main(String[] args) {
// 创建Vehicle类型的引用并指向子类对象
Vehicle vehicle = new Car();
vehicle.move(); // 展现多态效果,这里会打印"Car is driving"
vehicle = new Bicycle();
vehicle.move(); // 仍然可以调用move方法,这次会打印"Bicycle is riding"
// 也可以直接通过子类名调用,如下面这样更明确地展示多态
Car car = new Car();
car.move(); // 输出 "Car is driving"
Bicycle bicycle = new Bicycle();
bicycle.move(); // 输出 "Bicycle is riding"
}
}
```
在这个程序中,虽然我们使用的是`Vehicle`类型的引用,但是由于多态性,当我们通过这些引用调用`move()`方法时,实际运行的是子类中重写的方法。这就是多态的主要体现。
阅读全文