zoukankan      html  css  js  c++  java
  • 继承

    OOP的三大特征(优势):
    1.封装
    2.继承
    3.多态

    继承:
    继承是两个对象之间产生的一种关系
    a继承b 则a是子类,b是父类
    在OOP的程序中继承是描述类与类之间的一种关系

    继承的好处:生活中你继承你爹的财产 就可以直接拥有这些财产
    程序中 一个类a 继承另一个类b a可以直接使用b类中的属性
    和方法
    具体的说:继承极大程度的提高了代码的重用性
    名词解释:a继承b a称之为子类(派生类) b称之为父类(基类)
    注意:继承描述的是 什么和什么的关系
    在使用继承时,要先分析 类与类之间的关系,不应该违反生活中的原则

    抽象:
    在使用继承时要先抽象 再继承
    抽象是抽取一堆类共同拥有的内容 形成一个新的抽象概念(类 也称之为公共类)
    这个过程称之为抽象

    很多情况下 抽象得到的新的类型与业务是不相关的 仅仅是因为代码需要

    属性的查找顺序:
    在没有继承关系的时候:
    对象 -》类
    在有继承关系的时候:
    对象 -》自身的类 -》父类 -》。。。。-》object
    object:
    object 是所有类的根类 所有类都直接或者间接的继承自object
    在定义类的时候 如果没有手动继承任何类 默认继承object
    object 中包含所有对象的通用方法

    新式类和经典类:
    新式类 只要是继承自object的都叫新式类 在python3中所有类都是新式类
    python2 中不会自动继承object 需要手动继承object才能变成新式类
    新式类和经典类的区别在继承关系中的属性查找顺序不同

    继承的第二种使用方法:
    直接继承一个系统已有的类,来拓展新功能

    派生与覆盖:
    派生:
    当一个类继承另一个类 并存在与父类不同的内容时 就称之为派生类
    通常情况下一个子类就是一个派生类
    覆盖:
    在继承关系中,子类可以出现和父类完全相同的方法,根据查找顺序,会
    优先使用子类中的方法 这种情况就称之为覆盖

    子类重用父类方法:
    很多情况下我们需要在子类中来访问父类中的内容
    就可以通过子类重用父类方法来调:
    1. 父类名字.__init__(self,变量名)
    2. super(子类名字,self).__init__(变量名)
    3. super().__init__(变量名)

    组合:
    即把不用的对象组合到一起 也是用来减少重复代码
    组合:一个对象可以吧另一个对象作为属性来使用

    多继承与菱形继承:
    python支持同时继承多个类
    好处:可以同时拥有多个类中已存在的内容
    坏处:如果父类中出现了重复的名字 执行顺序需要参考mro列表
    查看mro列表:类名.mro()

    新式类的在继承中属性查找顺序是先查看深度,找到公共父类开始广度查找
    经典类是深度查找
  • 相关阅读:
    day9文件处理
    day8字符编码
    js小数乘法精确率问题
    webstorm上传vue代码至git
    vue项目关闭eslint检查
    MongoDB相关操作
    Redis持久化存储
    Redis 数据类型
    linux常用命令
    初识NoSQL
  • 原文地址:https://www.cnblogs.com/xiezuodd/p/10401217.html
Copyright © 2011-2022 走看看