简述python中面向对象编程的多态性
时间: 2023-10-23 14:27:12 浏览: 204
Python面向对象编程之继承与多态详解
5星 · 资源好评率100%
在 Python 中,面向对象编程的多态性是指在子类中可以重写父类的方法,从而实现对相同方法的不同实现。多态性允许不同类的对象对同一消息做出响应,从而增加了代码的灵活性和可扩展性。
例如,假设有一个基类 Animal,它有一个方法叫做 make_sound(),用于发出声音。现在有两个子类 Dog 和 Cat,它们都从 Animal 继承了 make_sound() 方法,并对其进行了重写。在程序中,我们可以根据当前对象的类型来调用对应的 make_sound() 方法,从而实现多态性。
具体来说,我们可以通过以下代码实现多态性:
```python
class Animal:
def make_sound(self):
pass
class Dog(Animal):
def make_sound(self):
print("汪汪汪")
class Cat(Animal):
def make_sound(self):
print("喵喵喵")
def animal_sound(animal):
animal.make_sound()
dog = Dog()
cat = Cat()
animal_sound(dog) # 输出: 汪汪汪
animal_sound(cat) # 输出: 喵喵喵
```
在上面的例子中,我们定义了一个 animal_sound() 函数,它接收一个 Animal 类型的参数 animal。在函数内部,我们调用了 animal 对象的 make_sound() 方法,由于 dog 和 cat 分别是 Dog 和 Cat 类的实例,它们在调用 make_sound() 方法时会分别调用自己类中的实现,从而实现了多态性。
阅读全文