JavaSE:继承和多态(下篇)
// 定义一个基类,Vehicle
class Vehicle {
int speed = 0;
// 基类的加速方法
void speedUp(int increment) {
speed += increment;
}
}
// 定义一个派生类,Car继承自Vehicle
class Car extends Vehicle {
int maxPassengers;
// 构造方法
Car(int maxPassengers) {
this.maxPassengers = maxPassengers;
}
// 重写speedUp方法
void speedUp(int increment) {
// 对speedUp方法进行增强,增加1.5倍的速度
speed += increment * 15 / 10;
}
}
// 测试代码
public class InheritanceTest {
public static void main(String[] args) {
Car car = new Car(5);
Vehicle vehicle = car; // 向上转型
// 调用基类的speedUp方法
vehicle.speedUp(20);
System.out.println("Vehicle speed: " + car.speed);
// 调用重写后的speedUp方法
car.speedUp(20);
System.out.println("Car speed: " + car.speed);
}
}
这段代码首先定义了一个基类Vehicle
和一个派生类Car
。Car
类重写了speedUp
方法,增加了与基类不同的行为。然后在main
方法中,我们创建了一个Car
对象,并使用向上转型将其赋给一个基类引用。接下来,我们分别调用基类和派生类的speedUp
方法,并打印车辆的速度,以此来展示多态的效果。
评论已关闭