class Car:
def start(self):
print('汽车已启动')
def stop(self):
print('汽车已停止')
class ElectricCar(Car):
def __init__(self, battery_capacity):
self.battery_capacity = battery_capacity
def start(self):
print(f'电动汽车已启动,电池容量为:{self.battery_capacity}')
class GasolineCar(Car):
def __init__(self, fuel_tank_capacity):
self.fuel_tank_capacity = fuel_tank_capacity
def stop(self):
remaining_fuel = self.fuel_tank_capacity / 2
print(f'汽油汽车已停止,油箱剩余油量为:{remaining_fuel}')
# 测试多态性
cars = [ElectricCar(50), GasolineCar(40)]
for car in cars:
if isinstance(car, ElectricCar):
car.start()
elif isinstance(car, GasolineCar):
car.stop()
- 代码说明:
- 首先定义了基类
Car
,包含start
和stop
方法。
ElectricCar
子类继承自Car
类,新增了battery_capacity
属性,并在构造函数__init__
中初始化。重写了start
方法,在打印启动信息时也打印电池容量。
GasolineCar
子类同样继承自Car
类,新增fuel_tank_capacity
属性并在构造函数中初始化。重写了stop
方法,在打印停止信息时打印油箱剩余油量(初始假设为油箱容量的一半)。
- 多态性测试:
- 创建了一个列表
cars
,包含一个ElectricCar
实例和一个GasolineCar
实例。
- 通过
isinstance
判断列表中的实例类型,然后调用相应子类重写后的方法,以此展示多态性。