python中类的继承

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

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

这里的格式很简单,只需使用class 子类(父类),就能让子类继承父类的所有类方法。

class 基础机器人():
    def __init__(self,参数):
        self.姓名 = 参数

    def 自报姓名(self):
        print('我是' + self.姓名 + '!')

    def 卖萌(self):
        print('主人,求抱抱!')

class 高级机器人(基础机器人):   #继承父类的全部功能
    def 高级卖萌(self):      #子类的特性功能
        print('主人,每次想到怎么欺负你的时候,就感觉自己全身biubiubiu散发着智慧的光芒!')

Julia = 高级机器人('Julia')
Julia.自报姓名()
Julia.卖萌()
Julia.高级卖萌()

子类除了可以继承和定制新的类方法,还能直接覆盖父类的方法,只要使用相同的类方法名称就能做到这一点。 

class 基础机器人():
    def __init__(self,参数):
        self.姓名 = 参数

    def 自报姓名(self):
        print('我是' + self.姓名 + '!')

    def 卖萌(self):
        print('主人,求抱抱!')

class 高级机器人(基础机器人):
    def __init__(self,姓名,智商):  #重写初始化函数
        self.姓名 = 姓名
        self.智商 = 智商

    def 自报姓名(self):     #重写自报姓名方法
        print('我是高级机器人' + self.姓名 + '!' + '智商高达' + self.智商 + '!')

    def 卖萌(self):       #重写卖萌方法
        print('主人,每次想到怎么欺负你的时候,就感觉自己全身biubiubiu散发着智慧的光芒!')

Mario = 高级机器人('Mario','150')
Mario.自报姓名()
Mario.卖萌()

多重继承

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

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

python中类的继承_第1张图片

class 基础机器人():
    def 卖萌(self):
        print('主人,求抱抱!')

 # 注:因为多重继承要求父类是平等的关系,所以这里的“高级机器人”没有继承“基础机器人”
class 高级机器人():
    def 高级卖萌(self):
        print('主人,每次想到怎么欺负你的时候,就感觉自己全身biubiubiu散发着智慧的光芒!')

class 超级机器人(基础机器人,高级机器人):
    def 超级卖萌(self):
        print('pika, qiu!')
        print('''    へ     /|
  /\7    ∠_/
  / │   / /
 │ Z _,< /   /`ヽ
 │     ヽ   /  〉
  Y     `  /  /
 イ● 、 ●  ⊂⊃〈  /
 ()  へ    | \〈
  >ー 、_  ィ  │ //
  / へ   / ノ<| \\
  ヽ_ノ  (_/  │//
  7       |/
  >―r ̄ ̄`ー―_
''')

超级机器人 = 超级机器人()  #实例化超级机器人
超级机器人.卖萌()
超级机器人.高级卖萌()
超级机器人.超级卖萌()

 最后,再来给大家展示一个多重继承的示例:

class Person:
    def __init__(self, name):
        self.name = name
        print('大家注意了!')

    def show(self):
        print('一个叫“%s”的人来了。' % self.name)

class Man(Person):
    def __init__(self):
        Person.__init__(self, name='范罗苏姆')  # 继承的基础上做一些改变
        # 上面的括号里也可以写成(self,'范罗苏姆'),但加上参数后清晰一些,代码看起来更清晰。

    def show(self):
        Person.show(self)  # 完全继承父类的方法

    def leave(self):  # 子类定制新方法
        print('那个叫“%s”的男人留下了他的背影。' % self.name)

author1 = Person('吉多')
author1.show()
author2 = Man()
author2.show()
author3 = Man()
author3.leave()

你可能感兴趣的:(Python基础,python,开发语言,后端)