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