07-多态
在 Python 中,多态(Polymorphism)是面向对象编程(OOP)中的一个核心概念。它指的是 同一个接口(方法或函数)在不同类的实例上表现出不同的行为。简单来说,多态让不同类型的对象可以使用相同的方法名,但产生不同的结果。
多态的特点:
- 方法重写(Override):子类可以重写父类的方法,调用时表现出子类自己的实现。
- 统一接口,不同实现:不同类可以实现同样的方法,但具体行为各不相同。
- 灵活性和可扩展性强:编写通用代码,减少代码重复。
简单实例演示:
# 父类:Animal
class Animal:
def speak(self):
pass # 父类定义一个接口,但不实现
# 子类1:Dog
class Dog(Animal):
def speak(self):
return "Woof! Woof!"
# 子类2:Cat
class Cat(Animal):
def speak(self):
return "Meow! Meow!"
# 子类3:Duck
class Duck(Animal):
def speak(self):
return "Quack! Quack!"
# 使用多态函数
def make_animal_speak(animal):
print(animal.speak())
# 创建不同类的对象
dog = Dog()
cat = Cat()
duck = Duck()
# 通过同一个函数调用不同类的方法
make_animal_speak(dog) # 输出: Woof! Woof!
make_animal_speak(cat) # 输出: Meow! Meow!
make_animal_speak(duck) # 输出: Quack! Quack!
解释:
1、Animal 是父类,定义了一个 speak 方法作为接口。
2、Dog、Cat、Duck 都继承自 Animal 并重写了 speak 方法。
3、函数 make_animal_speak 接受任何继承自 Animal 的对象,并调用其 speak 方法。
4、不同对象调用同一个方法,却展示出各自特有的行为。
多态的优势:
- 扩展性强:添加新类时,不需要修改已有代码。
- 代码简洁:使用统一接口,无需为不同类型写重复逻辑。🚀🐍