创建一个 Cycle 类,其中包含子类 Unicycle 、 Bicycle 和 Tricycle 。要求每种类型的实例都可以通过 ride ()方法向上转换到 Cycle 上
时间: 2024-02-28 09:56:19 浏览: 85
好的,以下是 Python 代码实现:
```python
class Cycle:
def ride(self):
print("Riding a cycle.")
class Unicycle(Cycle):
def ride(self):
print("Riding a unicycle.")
class Bicycle(Cycle):
def ride(self):
print("Riding a bicycle.")
class Tricycle(Cycle):
def ride(self):
print("Riding a tricycle.")
# 向上转型
uni = Unicycle()
uni.ride() # Riding a unicycle.
uni_as_cycle = Cycle()
uni_as_cycle = uni
uni_as_cycle.ride() # Riding a unicycle.
bi = Bicycle()
bi.ride() # Riding a bicycle.
bi_as_cycle = Cycle()
bi_as_cycle = bi
bi_as_cycle.ride() # Riding a bicycle.
tri = Tricycle()
tri.ride() # Riding a tricycle.
tri_as_cycle = Cycle()
tri_as_cycle = tri
tri_as_cycle.ride() # Riding a tricycle.
```
以上代码定义了 `Cycle` 类和其三个子类 `Unicycle`、`Bicycle` 和 `Tricycle`,每个子类都重写了 `ride` 方法。
由于 `Unicycle`、`Bicycle` 和 `Tricycle` 都是 `Cycle` 的子类,因此它们都可以隐式地向上转换为 `Cycle` 类型的对象。在代码中,我们首先创建了 `Unicycle`、`Bicycle` 和 `Tricycle` 的实例,然后将它们赋值给 `Cycle` 类型的对象,最后调用 `ride` 方法,可以看到它们都能够成功向上转型到 `Cycle` 类型,并且调用了正确的 `ride` 方法。
阅读全文