zoukankan      html  css  js  c++  java
  • 父类中的方法被覆盖以及子类调用父类覆盖的方法

    覆盖 override
      覆盖是指在有继承关系的类中,子类中实现了与基类同名的方法,在子类的实例调用该方法时,实际调用的是
      子类中的覆盖版本,这种现象叫做覆盖


    调用super 函数的两个方法:
      1.super(cls, obj) 返回绑定超类的实例(要求obj必须是cls类型的实例)
      2.super() 返回绑定超类的实例,等同于: super(__class__, 实例方法的第一个参数), 必须在方法内调用

    作用:
      可以用super() 返回的实例间接调用其父类的覆盖方法

    class A:
       def work(self):
         print("A.work")
    class
    B(A): def work(self): print("B.work") def super_work(self): self.work() #调用父类的work方法 super(B, b).work() super().work() #这种调用父类的方法只能在方法中调用 super(self.__class__, self).work() b = B() b.work() print("------") A.work(b) #对象b调用A类里面的work方法 print("++++++") super(B, b).work() print("******") b.super_work() 输出结果; tarena@tedu:~/zengsf/824$ python3 exercise824_2.py B.work ------ A.work ++++++ A.work ****** B.work A.work A.work A.work
  • 相关阅读:
    第二周作业
    第一周作业
    抓老鼠啊~亏了还是赚了?
    打印沙漏
    寒假作业2
    我与老师
    自我介绍
    第九周课程总结&实验报告(七)
    第八周课程总结&实验报告(六)
    第七周实验报告(五)&周总结
  • 原文地址:https://www.cnblogs.com/zengsf/p/9532349.html
Copyright © 2011-2022 走看看