写一个Python多态的实例
时间: 2024-02-17 22:04:52 浏览: 21
多态是面向对象的一个重要特性,它可以让不同的对象对同一消息做出不同的响应。下面是一个Python多态的示例:
```python
class Animal:
def __init__(self, name):
self.name = name
def speak(self):
pass
class Dog(Animal):
def speak(self):
return "Woof!"
class Cat(Animal):
def speak(self):
return "Meow!"
class Cow(Animal):
def speak(self):
return "Moo!"
def animal_speak(animal):
print(animal.speak())
dog = Dog("Buddy")
cat = Cat("Fluffy")
cow = Cow("Betsy")
animal_speak(dog) # 输出 "Woof!"
animal_speak(cat) # 输出 "Meow!"
animal_speak(cow) # 输出 "Moo!"
```
在这个示例中,我们定义了一个Animal类,以及它的三个子类:Dog、Cat和Cow。每个子类都重写了Animal类的speak()方法,并返回不同的字符串。我们还定义了一个animal_speak()函数,接受一个Animal类型的参数,并调用它的speak()方法。
在调用animal_speak()函数时,我们传入一个不同的Animal类型的对象(Dog、Cat和Cow),但是animal_speak()函数对于这三个对象都可以正常工作,并输出不同的结果。这就是多态的体现,不同的对象对同一消息做出不同的响应。