首先我们需要定义一个父类car(),厘米定义了汽车的一些属性和方法,包含里程,油箱和描述
car.py文件
class car():
def __init__(self,licheng,youxiang,describle):
self.licheng = licheng
self.youxiang = youxiang
self.describle = describle
def describles(self):
print("汽车的里程为{0},续航为{1},{2}".format(self.licheng,self.youxiang,self.describle))
def xingshi(self,licheng,youxiang):
self.licheng +=licheng
if self.youxiang>youxiang:
self.youxiang -=youxiang
def descs(self):
print("汽车的里程为{0},续航为{1},{2}".format(self.licheng, self.youxiang, self.describle))
然后需要定义一个子类去继承父类
electric_car.py文件
from car import car
class electric_car(car):
def __init__(self,licheng,youxiang,describle,electric_licheng):
super(electric_car,self).__init__(licheng,youxiang,describle)
self.electric = electric_licheng
#重写父类的方法
def describles(self):
print("汽车的里程为{0},续航为{1},{2}".format(self.licheng, self.electric, self.describle))
return
#重写父类的方法
def xingshi(self,licheng,electric_licheng):
self.licheng+=licheng
self.electric -=electric_licheng
if __name__ == '__main__':
ele = electric_car(0,100,"不怕奔驰和宝马,就怕大众带字幕",30)
ele.xingshi(30,20)
ele.describles()
ele.descs()
这里定义的子类electric_car(car),括号中必须包含继承的父类的名称,
方法__init__(self,licheng,youxiang,describle,electric_licheng)接受创建electric_car类所必须的信息
通过super(electric_car,self).__init__(licheng,youxiang,describle)类初始化父类car中的__init__(),进行赋值
函数super()包含2个实参:子类名和对象self。为帮助python将父类和子类关联起来,这些实参必不可少。
另外,在python 2.7中使用继承时,务必在定义父类时在括号内指定object。
重写父类的方法时,我们必须要与父类的名称保持一致,并且传递的参数数量也需要保持一致性。
我们可以直接在子类的方法中调用父类的属性和方法,例如 self.licheng,ele.descs() 就是父类定义的属性和方法