[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,……)

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

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

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

猜你喜欢

转载自www.cnblogs.com/mml-blog/p/10700516.html
今日推荐