【Python基础编程222 ● 面向对象 ● 在子类中调用父类中的被子类重写的方法】


---------Python基础编程---------

Author : AI菌


【内容讲解】

1、在子类中重写了父类的方法,
子类默认调用的是子类中重写的方法,不会调用父类中重写的方法
2、那么,在子类中,怎么调用父类中被子类重写过的方法?
在子类中调用父类中的被重写的方法,有三种格式:
1) 父类名.方法名(self, 实参1,实参2,...)
2) super(子类名,self).方法名(实参1,实参2,...)
3) super().方法名(实参1,实参2,...)
3、子类中调用父类中的被重写的方法,推荐格式:
1) 父类名.方法名(self, 实参1,实参2,...)

【代码演示】

"""
1、在子类中重写了父类的方法,
   子类默认调用的是子类中重写的方法,不会调用父类中重写的方法
2、那么,在子类中,怎么调用父类中被子类重写过的方法?
   在子类中调用父类中的被重写的方法,有三种格式:
       1) 父类名.方法名(self, 实参1,实参2,...)
       2) super(子类名,self).方法名(实参1,实参2,...)
       3) super().方法名(实参1,实参2,...)
3、子类中调用父类中的被重写的方法,推荐格式:
       1) 父类名.方法名(self, 实参1,实参2,...)
"""


class Father:
    def __init__(self, money, house):
        self.money = money
        self.house = house

    def run_company(self):
        print("父亲经营公司...")


# 子类继承父类
class Son(Father):
    # 重写了父类中的run_company方法
    def run_company(self):
        print("儿子经营公司...")

    def test(self):
        # 默认调用的是子类中的run_company方法
        self.run_company()

        # 调用父类中的run_company方法
        # 1.父类名.方法名(self, 实参1,实参2,...)
        Father.run_company(self)
        # 2.super(子类名,self).方法名(实参1,实参2,...)
        # super(Son, self).run_company()
        # 3.super().方法名(实参1,实参2,...)
        # super().run_company()


s = Son(100000000, "海景别墅一套")
s.test()

【往期精彩】

▷【Python基础编程196 ● 读取文件的4种方式】
▷【Python基础编程197 ● 读取文件的4种方式】
▷【Python基础编程198 ● 读取文件的4种方式】
▷【Python基础编程199 ● Python怎么读/写很大的文件】
▷【Python基础编程200 ● 读取文件的4种方式】
▷【Python基础编程201 ● 读取文件的4种方式】
▷【Python基础编程202 ● 读取文件的4种方式】
▷【Python基础编程203 ● 读取文件的4种方式】

【加群交流】



原文地址:https://www.cnblogs.com/hezhiyao/p/13424718.html