标签:代码 style 重写 sleep 方法重写 拓展 elf 方法 python2
A类继承B类,A即可获得B类的全部公共属性和方法。格式如:class A(B):
class Animal: def sleep(self): print("zZZ...") def eat(self): print("yamiyami...") def run(self): print("huchihuchi...") class Dog(Animal): #Dog类拥有sleep,eat,run,bark四个方法 def bark(self): print("汪汪汪")
子类有时需要对继承自父类的方法进行修改或重写,这时直接定义一个与需要重写的方法名一样的方法即可,如(接上面的代码):
class xiaotianquan(Dog): def fly(self): print("我在飞") #重写继承自父类的bark()方法 def bark(self): print("我在叫!我在叫!")
有时仅需对父类方法进行扩展无需完全重写,只需在重写方法时加上super().父类方法 即可:
class xiaotianquan(Dog): #扩展继承自父类的bark()方法 def bark(self): #继承父类的方法 super().bark() #此时super()即代表父类(此时的父类为Dog) #需要拓展的代码 print("我在叫!我在叫!")
super类是一个特殊的类,super()代表着一个super类的实例
在Python2.x版本中,子类重写或拓展父类方法时,不是使用super()调用,而是使用:父类名.父类方法(self) #注意,self不能省略
class xiaotianquan(Dog): #扩展继承自父类的bark()方法 def bark(self): #继承父类的方法 Dog.bark(self) #self不能省略 #需要拓展的代码 print("我在叫!我在叫!")
注意:super().方法名 与 父类名.方法名(self),开发中不能混用,只能使用一种,且推荐super().方法名这种
标签:代码 style 重写 sleep 方法重写 拓展 elf 方法 python2
原文地址:https://www.cnblogs.com/scopicat/p/11718194.html