55、方法的重写

小白量化 2025-12-14 07:44:11 32 举报

1、含义
在Python中,方法的重写是指子类定义了一个与父类中同名的方法。(子类中定义了与父类同名的方法!)

2、分类
(1)覆盖父类方法
当子类中定义了一个与父类同名的方法时,子类的方法会覆盖父类的方法。这意味着,当通过子类对象调用该方法时,将执行子类中的定义,而不是父类中的定义!

# 示例
class A1:
    """父类"""
   def method(self):   # 父类的方法
       print("这是A1类的method方法!")


class A2(A1):
   """子类"""
   def method(self):   # 子类的方法
       print("这是A2类的method方法!")


# 实例化子类对象
a2 = A2()
a2.method()   # 这是A2类的method方法!

(2)对父类方法进行扩展
它允许子类在继承父类方法的基础上添加或修改功能。这通常通过在子类中定义一个与父类同名的方法,并在该方法内部调用父类的同名方法以保留父类的行为,然后添加额外的逻辑来实现

# 示例
class A1:
   """父类"""
   def method(self):
       print("这是A1类的method方法!")


class A2(A1):
   """子类"""
   def method(self):
       # 子类中调用父类的同名方法,有三种实现方式:
       """(1)父类名.方法名(self):  降低了代码的灵活性和可维护性.一旦父类名更改,此处也需相应更改,增加了维护成名"""
       # A1.method(self)

       """(2)super(子类名, self).方法名(): Python 2.x中的古老写法,已过时"""
       # super(A2, self).method()

       """(3)super().方法名(): 常见且推荐.避免了直接依赖具体的类名,从而提高了代码的灵活性和可维护性."""
       super().method()

       # 子类自己的功能
       print("这是A2类的method方法!")


# 实例化子类对象
a2 = A2()
a2.method()


量化小白,从0开始学量化! 1

著作权归文章作者所有。 未经作者允许禁止转载!

最新回复 ( 0 )
发新帖
0
DEPRECATED: addslashes(): Passing null to parameter #1 ($string) of type string is deprecated (/data/user/htdocs/xiunophp/xiunophp.min.php:48)