定义交通工具类,具有交通工具名称属性,提供描述交通工具在行驶的方法;派生出货车和火车类,货车类增加载重属性,火车类增加车厢数目的属性。重写父类的描述行驶的方法,其中货车类增加对载重属性的描述,火车类增加对车厢数目的描述。
时间: 2024-04-14 09:28:27 浏览: 206
好的,以下是定义的交通工具类、货车类和火车类的示例代码:
```python
class Vehicle:
def __init__(self, name):
self.name = name
def drive(self):
print(f"{self.name}在行驶。")
class Truck(Vehicle):
def __init__(self, name, load):
super().__init__(name)
self.load = load
def drive(self):
super().drive()
print(f"这是一辆货车,最大载重为{self.load}吨。")
class Train(Vehicle):
def __init__(self, name, num_cars):
super().__init__(name)
self.num_cars = num_cars
def drive(self):
super().drive()
print(f"这是一辆火车,有{self.num_cars}节车厢。")
# 创建一个交通工具对象
vehicle = Vehicle("交通工具")
# 调用drive方法
vehicle.drive()
# 创建一个货车对象
truck = Truck("货车", 10)
# 调用drive方法
truck.drive()
# 创建一个火车对象
train = Train("火车", 5)
# 调用drive方法
train.drive()
```
在上述代码中,我们定义了一个交通工具类Vehicle,其中包含交通工具名称属性和描述行驶的方法drive。然后,我们派生出了货车类Truck和火车类Train。货车类增加了加载重属性load,火车类增加了车厢数目属性num_cars。同时,我们重写了父类Vehicle的drive方法,在子类中增加了对加载重和车厢数目的描述。
在示例中,我们创建了一个交通工具对象vehicle,并调用了其drive方法。然后,我们创建了一个货车对象truck,并调用了其drive方法。最后,我们创建了一个火车对象train,并调用了其drive方法。
输出结果为:
```
交通工具在行驶。
货车在行驶。
这是一辆货车,最大载重为10吨。
火车在行驶。
这是一辆火车,有5节车厢。
```
注意,在子类中重写父类的drive方法时,我们先调用了父类的drive方法(`super().drive()`),然后再增加对特定属性的描述。这样可以保留父类的行驶描述,并在子类中增加额外的描述。
阅读全文