081、Python 关于方法重写

所谓方法重写,就是子类对父类已有的方法,重新编写自己的实现版本,这个过程就叫做方法重写(override)。

说到方法重写,就不得不提多态。因为方法重写是实现多态的一种重要方式。

所谓多态,就是给不同的对象发送同样的消息,不同的对象执行了不同的行为。即多态允许我们以统一的接口来处理不同类型的对象。

在面向对象编程中,多态和方法重写通常一起使用,以实现更加灵活和强大的程序设计。

如何实现方法重写?

只需要在子类中定义一个与父类中方法同名的方法即可。Python会自动在调用时选择子类中的方法。

例:

class Animal:  
    def make_sound(self):  
        print("某种声音")  
  
class Dog(Animal):  
    def make_sound(self):  
        # 方法重写  
        print("汪汪")  
  
class Cat(Animal):  
    def make_sound(self):  
        # 方法重写  
        print("喵喵")  
  
# 运行同一方法,根据对象的不同运行不同方法  
def animal_sound(animal):  
    animal.make_sound()  
  
my_dog = Dog()  
my_cat = Cat()  
  
# 根据传入的实例(如Dog或Cat),将调用实例重写的make_sound方法  
animal_sound(my_dog)  # 输出: 汪汪  
animal_sound(my_cat)  # 输出: 喵喵

相关推荐

  1. 081Python 关于方法

    2024-07-17 07:08:04       22 阅读
  2. 方法,函数载,方法覆盖的区别

    2024-07-17 07:08:04       62 阅读
  3. 方法时的原则

    2024-07-17 07:08:04       58 阅读
  4. 方法重载和方法的区别

    2024-07-17 07:08:04       49 阅读
  5. 子类父类的方法

    2024-07-17 07:08:04       54 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-17 07:08:04       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-17 07:08:04       71 阅读
  3. 在Django里面运行非项目文件

    2024-07-17 07:08:04       58 阅读
  4. Python语言-面向对象

    2024-07-17 07:08:04       69 阅读

热门阅读

  1. 【linux 100条命令】

    2024-07-17 07:08:04       23 阅读
  2. Emacs: 可扩展的编辑器之神

    2024-07-17 07:08:04       28 阅读
  3. 如何在VSCode中配置Python环境

    2024-07-17 07:08:04       27 阅读
  4. 计算机视觉和自然语言处理:OCR 模型

    2024-07-17 07:08:04       25 阅读
  5. 【Memcached】一文详解 Memcached

    2024-07-17 07:08:04       24 阅读
  6. std::env是什么库?|Python一对一教学答疑

    2024-07-17 07:08:04       19 阅读
  7. ubuntu系统Docker常用命令

    2024-07-17 07:08:04       22 阅读
  8. Web前端-Web开发HTML基础2-list

    2024-07-17 07:08:04       25 阅读