类的继承

  • 多个类使用相同的方法和属性,应该把相同的方法抽象到父类中,减少代码的冗余
  • A类和B类需要调用相同的方法,创建C类,A和B继承C,A(C),B(C),A的对象和B的对象就可以直接调用C中的方法
  • A和B有相同的方法,一部分功能相同,还有不同的部分,创建父类C,把相同的部分放到C类的方法中,在A/B中保留不同的部分,然后分别在A/B中调用C类方法即可。
  • super().__init__继承属性,重写且需要在父类方法上加功能用super()
  • 多继承之间,广度优先原则
    • 横向,广度,纵向,深度
    • C3算法
    • 类名.mro()查看多继承的继承顺序
  • 在python3中,的所有所有类都是object的子类
    • 对于一些内置的方法会写在object类中,如果子类不定义,在调用的时候,最终会调object类的方法
    • 所有继承object类的都是新式类
    • 在python3中都是新式类
    • 在python2中不继承object类都是经典类
      • 在多继承中遵循深度优先
      • 经典类中没有super()和mro()方法
      • 多继承是Python的特性
  • 子类方法的继承、重写
    • 1.父类的非私有属性和非私有方法,子类可以直接继承,子类对象可以直接使用。如果子类要调用父类的私有属性和私有方法,只能通过间接的方法来获取。
    • 2.子类可以实现父类没有的属性和方法,与继承的属性和方法互不干扰。
    • 3.如果在子类中有跟父类同名的方法,但方法中执行的内容不同,则子类可以重写父类方法。
      • 当子类实现一个和父类同名的方法时,叫做重写父类方法。直接在子类中定义与父类同名的方法,然后在方法中实现子类的业务逻辑,子类方法就会覆盖父类的同名方法。子类重写了父类方法,子类再调用该方法将不会执行父类的方法。
    • 4.如果在子类重写父类的方法中,需要使用父类同名方法中的功能,在父类功能基础上做扩展,则子类可以在重写的方法中调用父类被重写的方法,使用super()来调用。
  •  
posted @   3notblv  阅读(31)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示