主题
继承与多态
继承是面向对象编程中的重要特性,它允许我们通过已有的类创建新类。多态则使得不同类型的对象能够以相同的接口响应调用,从而提高代码的灵活性和可扩展性。
继承
继承允许一个类从另一个类获取属性和方法。通过继承,可以复用已有类的代码。
python
class Animal:
def speak(self):
print("动物发出声音")
class Dog(Animal):
def speak(self):
print("汪汪")
class Cat(Animal):
def speak(self):
print("喵喵")
dog = Dog()
cat = Cat()
dog.speak() # 输出:汪汪
cat.speak() # 输出:喵喵
在上述代码中,Dog
和 Cat
都继承了 Animal
类,并重写了 speak
方法。
多态
多态是指不同类型的对象能够通过相同的接口调用不同的实现。通过继承和方法重写,实现了多态。
python
def make_sound(animal):
animal.speak()
make_sound(dog) # 输出:汪汪
make_sound(cat) # 输出:喵喵
尽管 dog
和 cat
是不同类型的对象,但它们都实现了 speak
方法,因此可以通过相同的 make_sound
函数进行调用。
方法重写与父类方法的调用
在子类中,我们可以重写父类的方法。如果需要在子类中调用父类的方法,可以使用 super()
。
python
class Bird(Animal):
def speak(self):
super().speak() # 调用父类方法
print("鸟儿唱歌")
bird = Bird()
bird.speak() # 输出:动物发出声音\n鸟儿唱歌
总结
- 继承允许通过已有类创建新类,并复用代码;
- 多态使得不同类型的对象可以通过相同接口调用不同的实现;
- 通过方法重写,子类可以修改父类方法的行为,并且可以通过
super()
调用父类方法。