zoukankan      html  css  js  c++  java
  • [python]-类的继承

    一、继承的引入

     说到继承,你一定脑补出了一场偶像剧里富二代继承老爹遗产,从此甩开99%同龄人,走上人生巅峰的大戏。“类的继承”也和这个有点类似,“子类”继承了“父类”的“财产”。

    类的继承很大程度也是为了避免重复性劳动。比如说当我们要写一个新的类,如果新的类有许多代码都和旧类相同,又有一部分不同的时候,就可以用“继承”的方式避免重复写代码。

    让我们看一个案例:有两个类,它们有许多代码一模一样,也有一部分代码不同。

    类一:

    类二:

    这两个类中,有三个类方法完全相同,但成绩单_新类多了一个类方法打印总分

    继承的写法:


    class 成绩单_旧():
    def __init__(self,学生姓名,语文_成绩,数学_成绩):
    self.学生姓名 = 学生姓名
    self.语文_成绩 = 语文_成绩
    self.数学_成绩 = 数学_成绩

    def 打印成绩单(self):
    print(self.学生姓名 + '的成绩单如下:')
    print('语文成绩:'+ str(self.语文_成绩))
    print('数学成绩:'+ str(self.数学_成绩))

    def 打印平均分(self):
    平均分 = (self.语文_成绩 + self.数学_成绩)/2
    print(self.学生姓名 + '的平均分是:' + str(平均分))

    class 成绩单_新(成绩单_旧):
     def 打印总分(self):
       总分 = self.语文_成绩 + self.数学_成绩
      print(self.学生姓名 + '的总分是:' + str(总分))


    实例_旧 = 成绩单_旧('王明明',99,88)
    实例_旧.打印成绩单()
    实例_旧.打印平均分()

    实例_新 = 成绩单_新('王明明',99,88)
    实例_新.打印成绩单()
    实例_新.打印平均分()
    实例_新.打印总分()

    二、继承类的相关定义

    格式:  class 新类(旧类)

    在Python里,我们统一把旧的类称为父类,新写的类称为子类子类可以在父类的基础上改造类方法,所以我们可以说子类继承了父类

    三、继承例子

    四、重写

    子类除了可以定制新的类方法,还能直接覆盖父类的方法(可类比富二代男主推翻了老爹管理公司的做派),只要使用相同的类方法名称就能做到这一点。

    例子:

    子类中重写覆盖任意父类方法,哪怕是初始化函数init。我们再做个重写初始化函数init的练习:

    像这样,子类从【一个父类】继承类方法,我们叫做“单继承”。还有一种更复杂的继承情况,叫“多重继承”。

    五、多重继承

    顾名思义,“多重继承”就是一个子类从【多个父类】中继承类方法。格式是class 子类(父类1,父类2,……)

    在此,子类超级机器人同时继承了父类基础机器人高级机器人中的类方法。

    不过,多重继承有利有弊。过度使用继承容易把事情搞复杂,就像一个人有很多爸爸必定会带来诸多麻烦。

    如果不是开发大型项目,不太需要用到太复杂的继承关系,所以你只需有个印象就好,我们对继承的讲解就讲到这里。

  • 相关阅读:
    64位操作系统下IIS报“试图加载格式不正确的程序”错误(转)
    Web编程前端之7:web.config详解
    基于.net的加密汇总(1)
    基于.net的加密汇总(2)
    Web编程前端之6:js刷新页面大全
    SQL Server之3:全文搜索(3)
    Web编程前端之4:css+div多样式可定制完美分页全攻略
    SQL Server之1:全文搜索(1)
    处理程序“PageHandlerFactoryIntegrated”在其模块列表中有一个错误模块“ManagedPipelineHandler”(转)
    SQL Server之8:sql查询每个学生得分最高的两门课
  • 原文地址:https://www.cnblogs.com/mml-blog/p/10700516.html
Copyright © 2011-2022 走看看