引言
方法重写(Method Overriding)与多态(Polymorphism)是面向对象编程中两个非常重要的概念。前者允许子类重定义父类的方法以实现特定的功能;后者则允许我们通过基类引用调用子类的方法,从而提高了代码的可扩展性和复用性。在实际开发中,它们广泛应用于框架设计、API抽象层以及各种复杂系统中,极大地提升了软件的模块化程度与维护效率。
基础语法介绍
方法重写
当一个子类继承自父类时,可以对父类已有的方法进行覆盖或修改,这就是方法重写。通过这种方式,子类可以在继承父类特性的同时,根据自身需求定制化某些行为。
多态
多态是指允许不同类的对象对同一消息作出响应的能力。简单来说,就是“一种接口,多种实现”。在Python中,多态主要通过鸭子类型(Duck Typing)来体现,即如果一个对象看起来像鸭子,走起路来也像鸭子,那么它就可以被视为一只鸭子。
基础实例
假设我们需要定义一组动物,并希望它们都能够发出声音。这里我们将使用方法重写来实现这一功能。
class Animal:
def make_sound(self):
print("这是一个动物发出的声音")
class Dog(Animal):
def make_sound(self):
print("汪汪!") # 子类重写了父类的方法
class Cat(Animal):
def make_sound(self):
print("喵喵!") # 子类重写了父类的方法
dog = Dog()
cat