• day 20


    day 20 面向对象的三大特性 (继承,封装,多态)

    01.继承

    1. 什么是继承

      1. 继承指的是新建立的方法,新建的类称之为子类或者派生类,自类继承的类叫做父类,也称之为基类或超类。
      2. 继承的特征;
        1. 子类可以继承父类的属性(特征与技能(变量与函数)),并且可以派生出自己的属性
        2. 一个子类可以继承多个父类(python的特性)
    2. 为什么要继承

      1. 继承的目的是为了减少代码的冗余(代码的重复)
    3. 如何实现继承

      1. 首先要确定好谁是子类,谁是父类。
      2. 在定义类时,子类+(),()内写括号父类,实现继承。
      class fu:
        xx='xx'
      class f2:
        zz='zz'
      class zl(fu):
        yy='yy'
      class z2(fu,f2): # 继承多个父类
        dd='dd'
      
    4. 查看继承的父类,__bases__(以元组的形式)

    class F1:
        pass
    class F2:
        pass
    class Z1(F1,F2):
        pass
    print(Z1.__bases__)
    
    (<class '__main__.F1'>, <class '__main__.F2'>)
    
    1. 如何寻找继承关系;
      1. 想要寻找继承关系,现抽象在继承
    2. 抽象;
      1. 抽取相同的属性,定义为父类
    3. 在程序中继承
      1. 对象——>调用类——>继承父类
    4. 继承的关系;
      1. 对象是一些列相同的特征和技能的结合体
      2. 类是一些列又有相同特征和技能的对象结合体
      3. 继承类是一些列又有相同特征和技能的类结合体
    5. 继承背景下对象属性查找顺序
      1. 对象本身的空间——>类空间——>父类空间——>报错
    6. 派生
      1. 派生指的是子类在继承父类属性基础上,拥有自己的属性
      2. 子类派生出的属性若与父类的相同,则以子类的为准
    7. 派生状态下继承的用法
    8. 新式类与经典类
      1. 新式类;所有继承object的类,python3中都是新式类
      2. 经典类;在python2中只要没有继承object都是经典类
    9. 再多继承情况下的查看当前类的继承顺序 mro()
      1. 从左到右
      2. 查找顺序;本身——>从左到右的父类——>object——>报错
      3. 子类. mro() # 查看字类的继承顺序,mro继承自object(type与object相互继承)
    10. 菱形继承的继承顺序
      1. 在多继承的情况下形成的
      2. 在经典类和新式类下的继承顺序不同
        1. 经典类会根据深度优先(一条线一条线找,第一条线就找到根类)
        2. 新式类会根据广度优先(一条线一条线找,最后一条线才找到根类)(继承object的那个类)
        3. 最后才寻找继承object的那个类
  • 相关阅读:
    Python调用R语言
    走迷宫(用栈模拟实现非递归,并输出路径)
    走迷宫(用栈模拟实现非递归,并输出路径)
    《Python数据可视化编程实战》
    《Python数据可视化编程实战》
    一道思考题(二进制枚举的应用的想法)切金条
    Android 自己定义UI圆角button
    Oracle 用户管理(二)
    最大团解析及用处
    用反射完毕学生管理系统(包含数据库连接)
  • 原文地址:https://www.cnblogs.com/luocongyu/p/11668785.html
Copyright © 2020-2023  润新知