zoukankan      html  css  js  c++  java
  • python面向对象继承

    class A(object):pass   # 括号中可称为父类,基类,超类
     class B:pass   # 父类,基类,超类
     class A_son(A,B):pass # 子类,派生类
     class AB_son(A):pass # 子类,派生类
    # 一个类 可以被多个类继承
    # 一个类 可以继承多个父类  —— python里
     print(A_son.__bases__) #查看父类
    # print(AB_son.__bases__)
    # print(A.__bases__)  # python3 -新式类# 没有继承父类默认继承object,object是所有类的父类
    class Animal:
    #     def __init__(self,name,aggr,hp):
    #         self.name = name
    #         self.aggr = aggr
    #         self.hp = hp
    #
    #     def eat(self):
    #         print('吃药回血')
    #         self.hp+=100
    #
    # class Dog(Animal):
    #     def __init__(self,name,aggr,hp,kind):
    #         Animal.__init__(self,name,aggr,hp)  #
    #         self.kind = kind       # 派生属性
    #     def eat(self):
    #         Animal.eat(self)   # 如果既想实现新的功能也想使用父类原本的功能,还需要在子类中再调用父类
    #         self.teeth = 2
    #     def bite(self,person):   # 派生方法
    #         person.hp -= self.aggr

    父类中没有的属性 在子类中出现 叫做派生属性
     父类中没有的方法 在子类中出现 叫做派生方法
     只要是子类的对象调用,子类中有的名字 一定用子类的,子类中没有才找父类的,如果父类也没有报错
     如果父类 子类都有 用子类的
     如果还想用父类的,单独调用父类的:
     父类名.方法名 需要自己传self参数
     super().方法名 不需要自己传self                 当有棱形继承时super调用方法的顺序安找棱形继承的顺序调用。
     正常的代码中 单继承 === 减少了代码的重复
     继承表达的是一种 子类是父类的关系

  • 相关阅读:
    入门菜鸟
    FZU 1202
    XMU 1246
    Codeforces 294E Shaass the Great 树形dp
    Codeforces 773D Perishable Roads 最短路 (看题解)
    Codeforces 814E An unavoidable detour for home dp
    Codeforces 567E President and Roads 最短路 + tarjan求桥
    Codeforces 567F Mausoleum dp
    Codeforces 908G New Year and Original Order 数位dp
    Codeforces 813D Two Melodies dp
  • 原文地址:https://www.cnblogs.com/daju/p/10222479.html
Copyright © 2011-2022 走看看