实现一个简单的汽车销售商场。用户先指定购买的车型,然后由上交去提取该车型的汽车。体会多态的用法。运行效果如下:
时间: 2024-02-27 09:55:51 浏览: 16
好的,我理解了你的问题。这是一个典型的面向对象编程问题,需要用到多态。
以下是一个简单的实现:
```python
class Car:
def __init__(self, model):
self.model = model
class CarStore:
def __init__(self):
self.cars = []
def add_car(self, car):
self.cars.append(car)
def get_car(self, model):
for car in self.cars:
if car.model == model:
return car
return None
class Customer:
def __init__(self, name):
self.name = name
self.car = None
def buy_car(self, store, model):
self.car = store.get_car(model)
def drive_car(self):
if self.car:
print(f"{self.name} is driving {self.car.model}")
else:
print(f"{self.name} does not have a car")
# 创建汽车商店
store = CarStore()
# 添加汽车
store.add_car(Car("Audi"))
store.add_car(Car("BMW"))
store.add_car(Car("Mercedes"))
# 创建顾客
customer1 = Customer("Alice")
customer2 = Customer("Bob")
# 购买汽车
customer1.buy_car(store, "Audi")
customer2.buy_car(store, "BMW")
# 开车
customer1.drive_car() # 输出 "Alice is driving Audi"
customer2.drive_car() # 输出 "Bob is driving BMW"
```
在这个例子中,`Car` 类表示汽车,`CarStore` 类表示汽车商店,`Customer` 类表示顾客。`CarStore` 类有一个 `add_car` 方法用于添加汽车,一个 `get_car` 方法用于获取指定车型的汽车。`Customer` 类有一个 `buy_car` 方法用于购买汽车,一个 `drive_car` 方法用于开车。在 `buy_car` 方法中,我们调用了 `CarStore` 的 `get_car` 方法来获取指定车型的汽车。在 `drive_car` 方法中,我们输出了当前顾客所开的汽车型号。
这个例子中体现了多态的用法。`CarStore` 类和 `Customer` 类都依赖于 `Car` 类,但是它们对 `Car` 类的使用方式是不同的。`CarStore` 类只需要知道汽车的型号,而不需要知道具体的实现细节;`Customer` 类需要知道汽车的型号以及如何开车。这种不同的用法体现了多态的思想。