给个多态运用的示例代码
时间: 2023-08-28 16:53:02 浏览: 71
当然可以!以下是一个多态的示例代码:
```python
class Animal:
def sound(self):
pass
class Dog(Animal):
def sound(self):
return "Woof!"
class Cat(Animal):
def sound(self):
return "Meow!"
class Cow(Animal):
def sound(self):
return "Moo!"
def make_sound(animal):
print(animal.sound())
dog = Dog()
cat = Cat()
cow = Cow()
make_sound(dog) # 输出:Woof!
make_sound(cat) # 输出:Meow!
make_sound(cow) # 输出:Moo!
```
在这个示例中,我们定义了一个基类 `Animal`,它有一个抽象方法 `sound()`。然后我们创建了三个派生类 `Dog`、`Cat` 和 `Cow`,它们都重写了 `sound()` 方法。
接下来,我们定义了一个函数 `make_sound(animal)`,它接受一个 `Animal` 类型的参数,并调用参数的 `sound()` 方法来输出动物发出的声音。
通过运行 `make_sound()` 函数,并传入不同的动物对象,我们可以看到多态的效果。不同的动物对象调用相同的方法,但根据对象的实际类型,会执行不同的实现逻辑,从而产生不同的输出。
希望这个示例能帮助你理解多态的概念和运用!如果你有任何其他问题,请随时提问。