首页 > 编程语言 >编程路-基础提升-第八周-01

编程路-基础提升-第八周-01

时间:2022-12-28 23:33:10浏览次数:45  
标签:01 继承 子类 编程 第八 object 调用 父类 属性

面向对象特性

对象特性,更过是对继承属性的理解,理解到位了 ,在使用特性时,才能又方便又快捷。

  • 继承的概念

封装,继承,多态    富二代 继承财产 类的继承

  1. 封装 提高代码的重复使用 简化 方便管理
  2. 继承 减少代码的重复    去除两个类直接重复的代码
  3. 多态    基类    (object )通常默认不写
  • 单继承

子类继承父类 将拥有父类的所以属性和方法  括号相当于继承

  • 多继承
  1. 子类能继承多类
  2. 继承顺序
    1. 但是两个父类都具备相同属性也就是变量时,遵循先调取父类时从左到右
    2. son 找father,father 发现要回合找object的话就先找motherran后在回合到object
  3. 用__.mro__查找类的搜索路径也能看出
  • 私有属性与方法
  1. 一个下划线_可以被继承
  2. 二个下划线__强制私有,无法被继承 不能继承,只有一个类才能拥有就是相当于父亲的指纹,别人无法拥有。
  3. 属性和方法无法被继承,也就是可以保证一些变量和方法只能被内部调用,不能外部使用
  • 多层继承
  1. 本质就是嵌套继承
  2. 多个父类继承也是,先从子类搜索没有就搜父类,如果父类要搜到object就先搜索下一个父类再要搜到object再搜下一个父类,父类搜完最后搜索object
  3. 如果要父类继续嵌套,还是沿着一个父类到object,但不搜object,返回下一个开始的父类继续搜索到object,直到父类搜索完成,在搜索汇集到一起的object
  4. 对于父类下嵌套的多个二级父类,也是搜索到回合后,返回上一级父类再搜,都搜完了再到另一个父类,最后将汇合的object搜索
  • 子类重写父类的同名方法和属性
  1. 重写父类的方法 覆盖父类方法
  2. 就是在父类下子类有独有自己特性但是拥有和父类一样名字的方法和属性

 

  • 子类调用父类的同名方法和属性
  1. 在需要的情况下,子类使用父类的方法或者属性
  2. 平时子类用不上这个属性,但是有的时候偶尔会用到父类属性时,就要从子类中调用父类的方法和属性
  3. 即使获得产生相同的结果,但含义不同
    1. 父类自己产生对象 例如:F().love() F().相当于生成实际对象
    2. 子类产生的对象 例如: F.love(self)
  • super()
  1. 调用父类的方法,只有一个父类的时候使用,拥有多个父类时,super()只能就近取值
  2. super()就是代替父类在子类调用时不必复杂的表示
  3. 调用父类的方法
    1. 正常直接调用父类的方法,是比较简单的
    2. 如果正常子类直接调用父类的内容,会报错,缺少对子类的初始化定义
  4. 从对子类初始化后
    1. 可以从父类中调用属性
    2. 也可直接从子类调用属性
  5. 这时可以用super(),简化处理    也有两种写法对super()内容的省不省略里面的(父类,self)
  6. 如果要输入的属性中既有属于父类的,也有转属于子类的变相,就不能单纯的init来分别初始化了,那样会报错,因为这样就只会初始化最后的变量
    子类中定义的属性,可以不用在单独把所有的属性重新写一遍,父类中有的可以自动调用过来,初始化父类。  子类中定义的属性,可以不用在单独把所有的属性重新写一遍,父类中有的可以自动调用过来,初始化父类。

  • 面向对象特性
  1. 不在定义函数中的变量属于对象的属性
  2. 使用的时候需要对象调用
  3. 将属性赋值给对象的属性
  4. 对于对象属性要点属性才能应用 直接在定义函数中应用,不被认可    如果想使用里面变量要self.去创建一个对象的属性才能使用

 

标签:01,继承,子类,编程,第八,object,调用,父类,属性
From: https://www.cnblogs.com/qipaxiaopao/p/17011512.html

相关文章

  • 编程路-基础提升-第七周-04
    面向对象面对对象,实际上是继承某一类相同特征的事物,概念比较抽象,需要认真研究。理解面向对象面向对象是一致编程的思维模式特征是属性,编程中相当于变量  age=20......
  • 编程路-基础提升-第七周-03
    文件操作文件操作是使用Python中,跟现实连接的第一步,也是基础所在,要学会应用,才能慢慢有眼见为实的感觉。文件的操作作用文件读写文件名称文件的路径文本文件(data.t......
  • 编程路-基础提升-第七周-02
    高阶函数应用高级函数是对于函数应用更为简洁,更为高效的方法。递归的了解与应用特点函数内部自己调用自己必须要有出口递归可以用于多种情况下,一般需要和if判断......
  • luogu P4002 [清华集训2017]生成树计数
    题面传送门容易想到放到prufer序列上,变成下面的形式。\(\sum\limits_{\sumc_i=n-2}{\frac{(n-2)!}{\prod\limits_{i=1}^{n}{c_i!}}\prod\limits_{i=1}^{n}{a_i^{c_i+1}(......
  • [JSOI2018]机器人
    题目描述一个\(n\timesm\)的网格,有一个机器人一开始在\((1,1)\),每次机器人可以向右或向下走一步,\((i,m)\)的右边是\((i,1)\),\((n,j)\)的下边是\((1,j)\),机器人需要不重......
  • Win 10 x64 Visual Studio 2019 编译 Detours 4.0.1
    Win10x64VisualStudio2019编译Detours4.0.1 十一年前,研究项目里用到的Detours已经更新到版本4.0.1,支持64位HOOK,从Github上下载下来编译看一下。GitHub下载......
  • 狂神说Go语言—面向对象编程讲解
    OOP思想Go语言不是面向对象语言,只是让大家理解一些面向对象的思想,通过一些方法来模拟面向对象语言的进化发展跟生物的进化发展是一回事,都是"物以类聚"语句多了,我们将完......
  • P1024 [NOI2001] 食物链【种类并查集】
    题意P1024简化题意:给定\(n\)和\(k(n\leqslant5\times10^4,k\leqslant10^5)\),表示有\(n\)个动物,\(k\)个描述,其中:\(n\)个动物分别属于\(A,B,C\)中的一种,定义......
  • 判断101-200之间有多少个素数,并输出所有素数
      问题分析:题目中的关键词是素数,什么是素数?素数就是只能被1和自身整除的数,例如11就是素数,但12就不是,因为12可以被1,2,3,4,6和12整除,故12就不是素数;但11就只能被1和11整除,所以......
  • 爱上 Mybatis源码 (2019-08-11)
     第一次学习源码,自己很难吃透源码,也做不到直接撸源码,一句一句的解析。先学习一下别人的文章,吃透源码的流程,日后有能力了再逐句撸。 源码的乐趣就在于首先能明白为什么我......