zoukankan      html  css  js  c++  java
  • 组合,接口day21课堂小结

    昨日回顾

    1. 继承

      ​ 新建类的方式,新建的类称之为子类或派生类,继承的类称之为父类,也叫基类或超类

    2. 继承的目的

      ​ 解决代码的冗余问题

    3. 寻找继承关系

      ​ 先抽象,再继承

    4. 什么是抽象

      ​ 抽取类相似的部分

    5. 在继承背景下对象属性的查找顺序

      -从对象

      -从子类

      -从父类

    6. 派生

      ​ 派生指的是子类继承父类的属性,并且派生出自己新的属性

    7. 子类派生出新的属性,并重用父类属性

      ​ 若子类新的属性与父类的属性相同,则以子类的为准。

      ​ 重用父类的两种方式:

       	1. 直接通过父类.`__init__`,将其当作普通的函数使用。
      
       		2. super().`__init__`,指向的是父类的`__init__`.
      
    8. 新式类与经典类

      ​ 继承了object类都称之为新式类

      ​ 在python2中,没有继承object的类都称之为经典类.

    9. 钻石继承:

      ​ 新式类:

      ​ 广度优先

      ​ 经典类:

      ​ 深度优先

      组合

      1.什么是组合?

      ​ 组合指的是一个对象中的属性,是另一个对象.

      2.为什么要使用组合?

      ​ 组合目的和继承一样,为了减少代码冗余。

      封装

      1.什么是封装?

      ​ 比喻:

      ​ 封:比如把一个袋子封起来。

      ​ 装:比如把一堆小猫,小狗,nick装到袋子里。

      ​ 封装指的是把一堆属性(特征与技能)封装到一个对象中。

      ​ 存数据的目的是为了取,对象

      ​ 比喻:对象就好比一个袋子,袋子里面袋一堆属性。

      2.为什么要封装?

      ​ 封装的目的为了方便存取,可以通过对象,属性的方式获取属性。

      3.如何封装

      ​ 特征:变量 --》数据属性

      ​ 技能:函数--》方法属性

      ​ 在类内部,定义一堆属性(特征与技能).

      ​ 通过 对象.属性 = 属性值

      访问限制机制

      ​ 1.什么是访问机制?

      ​ 在类内部定义,凡是以__开头的数据属性与方法属性,

      ​ 都会被python内部隐藏起来,让外部不能‘直接’访问类内部的__开头的属性,

      ​ 比如: __name = ‘tank'

      ​ 2.访问限制机制的目的?

      ​ 一堆隐私的属性与不能被外部轻易访问的属性,可以隐藏起来,不被外部直接调用。

      ​ 好处:

      ​ 对重要数据获取的逻辑更加严谨,进而保证了数据的安全。

      ​ 接口:隐私属性可以通过封装一个接口,在接口内做业务逻辑的处理,再把数据返回给调用者。

      ​ 注意:在python中,不会强制限制属性的访问,类内部__开头的属性,只是做了一种变形,若想直接访问,调用变形后的名字即可。

      ​ class Foo:

      __name = 'tank' # --->_类名__属性名

      property

      1.什么是property

      ​ python内置的装饰器,主要是给类内部的方法使用.

      2.为什么要用property

      ​ 使用它的目的,是将类内部的方法(def 方法名())变成了(def 方法).

      ​ 在对象调用某个方法时,将对象.方法()变成对象.方法(看起来像一个普通的数据属性)

      3.如何使用property

      ​ @property

      多态

      1.什么是多态?

      ​ 多态指的是同一种事物的多种形态.

      2.多态的目的:

      ​ 多态也称之多态性,在程序中继承就是多态的表现形式.

      ​ 多态的目的是为了,让多种不同类型的对象,在使用相同功能的情况下,调用同一个名字的方法名。

      ​ 父类:定义一套统一的标准。

      ​ 子类:遵循父类统一的标准。

      ​ 多态的最终目的:统一子类编写的规范,为了让使用者更方便调用相同功能的方法.

      3.如何实现:

      ​ -继承

      注意:在python中,不会强制要求子类必须遵循父类的一套标准,所以出现了抽象类

      抽象类

      1.是什么?
      abc模块 abstract_class

      2.使用的目的?
      强制子类必须遵循父类的一套标准.

      3.如何使用
      import abc

      鸭子类型

    鸭子类型:
    1.什么是鸭子类型?
    在不知道当前对象是何物的情况下,但是你长得像鸭子,那么你就是鸭子类型.

    在python中,不推荐使用抽象类强制限制子类的定义,但是推荐类都遵循鸭子类型.

    • 继承:
      耦合性太高,程序的可扩展性差

    • 鸭子类型:
      耦合度低,程序的可扩展性强

  • 相关阅读:
    PHP | 运算符优先级
    Docker配置PHP+Nginx+MySQL
    Windows下Mysql主从配置
    php-fpm重启配置修改无效
    MySQL事务
    hadoop伪集群搭建
    Springboot2.x源码下载安装
    微服务——服务之间访问,用Feign请求服务接口超时如何解决?
    Lua安装
    日期——计算每月第一天和最后一天
  • 原文地址:https://www.cnblogs.com/shin09/p/11657293.html
Copyright © 2011-2022 走看看