类的继承3

"""
当子类继承父类,且子类与父类都有同名的函数,且既想执行子类的同名函数,也想执行父类的同名函数:
可以使用super方法;具体如下:
"""

方法1:

class father:
def f1(self):
print("第一")
def f2(self):
print("第二")

class son(father):
def s1(self):
print("我是周五超啊")
def f2(self):
super(son,self).f2() #super(son,self)这是固定格式,super(son,self).f2()理解为son这个类的父类的f2方法
print("我不是第二,因为我重新了这个方法,不想继承父亲的f2")

s=son()
s.f2() #此时打印结果则为先打印父类的f2,然后执行子类的f2,如想先执行自己的再执行父类的,可以将super(son,self).f2()放到print("我不是第二,因为我重新了这个方法,不想继承父亲的f2")下面即可

方法2:

class father:
def f1(self):
print("第一")

def f2(self):
    print("第二")

class son(father):
def s1(self):
print("我是周五超啊")

def f2(self):
    father.f2(self)  #父类下的f2方法,此种为不推荐写法

    print("我不是第二,因为我重新了这个方法,不想继承父亲的f2")

s = son()
s.f2()

"""
推荐写法为super的写法,不推荐第二种
"""

posted @ 2022-01-11 11:15  土孩子  阅读(42)  评论(0)    收藏  举报