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()著作权归文章作者所有。 未经作者允许禁止转载!