在python中实现对象的继承只需在创建类时在括号中写入要继承的类名即可。
1. 继承的定义
classPerson(object):#定义父类 defrun(self):#父类中的方法 print("personisruning") classChinese(Person):#定义子类,继承Person类 defwalk(self):#在子类中定义自己的方法 print('personiswalking') c=Chinese() c.run()#调用继承Person的方法 c.walk()#调用自己的方法 #输出 personistruning personiswalking
2. 继承构造函数
继承结构方法:
1.经典写法: 父类名称.__init__(self,参数1,参数2...)2. 新型写法:super(子类,self).__init__(参数1,参数2...)
classPerson(object): def__init__(self,name,age): self.name=name self.age=age defrun(self): print("personisruning") classChinese(Person): def__init__(self,name,age,language): Person.__init__(self,name,age)#可以写成super(Chinese,self).__init__(name,age)继承父类init self.language=language#定义子类属性 defwalk(self): print('personiswalking') c=Chinese('xiaoming',26,'Chinese')
3. 子类对父类方法的重写
由于子类本身的优先级高于父类,当我们定义子类与父类同名函数时,我们可以重写父类方法
classPerson(object): def__init__(self,name,age): self.name=name self.age=age defrun(self): print("personisruning") classChinese(Person): def__init__(self,name,age,language): Person.__init__(self,name,age) self.language=language print(self.name,self.age,self.language) defrun(self):#子类重写法 print('%sisalsoruningchinese'%self.name) c=Chinese('xiaoming',26,'Chinese') c.run() #输出 xiaoming26chinese xiaomingisalsoruningchinese
推荐课程:Python面对象(Corey Schafer)