zoukankan      html  css  js  c++  java
  • 继承

    继承

      继承是两个对象之间产生的一种关系

      在oop的程序中继承描述类与类之间的一种关系

      继承的好处:生活中你继承你爹的财产就可以直接使用这些财产

            程序中一个类a继承另一个类b a就是可以直接使用b类中的属性和方法

      具体来说:继承极大提高了代码的重要性

      名词解释:a继承b a称之为子类(派生类) b类称之为父类(基类)

      继承描述的是什么是什么的关系

      在使用继承的时候 一定是先抽象再继承

    抽象

      抽取一堆类共同拥有的内容 形成一个新的抽象概念(类) 形成一个新的抽象概念(类) 这个过程就叫做抽象

      如 佩奇 麦兜 这就是抽象

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

    属性查找 

      没有继承关系时

        对象——>类中

      存在继承关系后

        对象——>自身的类中——>父类 父类的父类。。。——>object

        object是所有类的根类所有类都直接或者间接的继承自object

        在自定义的时候如果你没有手动继承任何类 默认继承object

        object中包含所有对象通用的方法

    新式类

      只要是继承自object都叫新式类 在python3中所有类都是新式类

      python2中不会自动继承object 需要手动继承object才能变成一个新式类

      新式类和经典类的区别在于继承关系中的属性的查找顺序不同

      可以继承一个系统已有的类来扩展新功能

      需求:给list扩展类型限制功能 只允许加整型数据

    class MyList(list):
        def append(self, object):
            print('append run')
            if type(object) == int:
                list.append(self, object)
            else:
                print('只允许添加整型')
    
    
    l1 = MyList()
    l1.append('aaa')
    print(l1)
    l1.append(66)
    print(l1)

    派生:  

      当一个类继承另一个类并存在与父类不同的内容时那么称之为派生类

      通常情况下一个子类就是一个派生类

    覆盖 

      在继承关系中子类可以出现与父类完全相同的方法 根据查找顺序会优先使用

      子类中的方法 这种情况就称之为覆盖

    子类访问父类

      很多情况下我们需要在子类中来访问父类的内容

      就可以通过super().要访问的名字

    组合

      即把不同的对象组合到一起 也是用来减少重复代码

      一个对象可以把另一个对象作为属性来使用

    多继承

      python支持多继承

      一个类可以继承多个其他类

      默认情况下 是按照继承顺序来访问属性

      好处:可以同时拥有多个类中已存在的内容

      坏处:如果父类中出现了重复的名字执行顺序需要参考

    菱形继承

      说的是一个类有多个父类并且多个父类之间有公共父类

    经典类与新式类

      经典类和新式类在访问顺序上有所不同

      经典类 按照深度优先的顺序

      新式类 也是按照深度优先 遇到公共父类则找另一条继承关系 最后才会找公共父类

  • 相关阅读:
    1.1 创造性和动机
    【普及分享】云计算=/=云主机,阿里云=低价低端
    【大话设计模式】——策略模式
    Android 学习笔记之Bitmap位图的缩放
    Android 学习笔记进阶十二之裁截图片
    Android 学习笔记进阶14之像素操作
    Android 给图片 加边框
    android 图片特效处理之 光晕效果
    android 图片特效处理之 图片叠加
    android 图片特效处理之光晕效果
  • 原文地址:https://www.cnblogs.com/ShenJunHui6/p/10401436.html
Copyright © 2011-2022 走看看