📜  函数覆盖 (1)

📅  最后修改于: 2023-12-03 15:22:37.513000             🧑  作者: Mango

函数覆盖

在面向对象编程(OOP)中,函数覆盖(也叫函数重写)是指子类重新定义(覆盖)父类中的函数。使用函数覆盖,子类可以改变原有函数实现方式,实现多态。

示例

假设有一个父类Animal,其中定义了一个move函数用于动物的移动。

class Animal:
    def move(self):
        print("Animal is moving")

现在有一个子类Dog,我们希望Dog的移动方式不同于Animal,那么我们可以通过函数覆盖来实现。

class Dog(Animal):
    def move(self):
        print("Dog is running")

这样,当我们调用Dog对象的move函数时,将输出Dog is running而不是Animal is moving

dog = Dog()
dog.move()

上述语句会输出Dog is running

注意事项
  • 函数覆盖时,子类函数的名称、参数个数、参数类型必须与父类相同,否则会报错。
  • 函数覆盖应该只覆盖需要改变的函数,不需要修改的函数不要进行覆盖。如果一定要覆盖,可以使用super()调用父类函数。