继承父类方法的几种方式:
一.重写父类的方法:
父类:
class Zll(): #父类 def smile(self): print('哈哈哈')
子类:
class Xz(Zll): def smile(self): #拥有与父类相同的方法,即重写父类的方法 print('呵呵呵呵')
二.重写父类方法:在父类基础上,再加新的功能:
方式一:可通过调用父类方法,然后再写自己的方法来实现(特征:父类有这个方法,但是它的功能不够完善,给这个方法在原有基础上再添加一些新功能)。
子类:
class Xz(Zll): def smile(self): #先重写父类的方法 Zll().smile() #,先实例化Zll(),调用了父类方法 print('呵呵呵呵') #然后再加入自己方法的内容
方式二:可通过调用父类方法,然后再写自己的方法来实现(特征:父类有这个方法,但是它的功能不够完善,给这个方法在原有基础上再添加一些新功能)。
用super()来实现:
子类:super(自己的类名,self)
class Xz(Zll): def smile(self): #先重写父类的方法 super(Xz,self).smile() #这个自动帮你找到父类,然后调用相同的方法,所以存在多个父类时,有差别,请看下面分解 print('呵呵呵呵') #然后再加入自己方法的内容
三.多继承:多继承时,直接用父类实例化.方法来调用,即:Zll().smile(),要分别指出调用哪个父类的方法
# coding=utf-8 class Zll(): def smile(self): print('哈哈哈') class Dcg(): def smile(self): print('啊啊啊啊啊') class Lw(): def smile(self): print('嘿嘿嘿') class Xz(Zll,Dcg,Lw): #多继承,及有多个父类 def smile(self): #重写父类的方法 Zll().smile() #调用Zll的smile方法 Dcg().smile() #调用Dcg的smile方法,即分别写调用哪个父类方法 print('呵呵呵') #自己的方法
使用super()来写,修改父类方法(比较常见):
# coding=utf-8 class Zll(): def smile(self): print('哈哈哈') class Dcg(): def smile(self): print('啊啊啊啊啊') class Lw(): def smile(self): print('嘿嘿嘿') class Xz(Zll,Dcg,Lw): #多继承,及有多个父类 def smile(self): #重写父类的方法 super(Xz,self).smile() #这个自动帮你找到父类,如果多个父类有相同的方法时,默认继承第一个相同方法 print('呵呵呵') #自己的方法