有继承的类 + 有重写/修改/替换类
class Car():
"""汽车"""
def __init__(self, energy, distance):
self.energy = energy
self.distance = distance
self.windows = "close"
def go(self): # 加油门
self.energy = self.energy - 1
self.distance = self.distance + 1
return
def add(self): # 加油
self.energy = self.energy + 1
def open_windows(self): # 车窗
self.windows = "open"
class ElectricCar(Car): # 必须在括号内指定父类的名称
"""电动汽车"""
def __init__(self, energy, distance, battery_size): # 接受创建Car实例所需的信息
"""初始化父类的属性"""
super().__init__(energy, distance) # 帮助Python将父类和子类关联起来
self.battery_size = battery_size # 给子类定义新属性
def go(self): # 加电门
self.battery_size = self.battery_size - 1
self.distance = self.distance + 1
return
def add(self): # 充电
self.battery_size = self.battery_size + 1
open_windows()不变
go()、add() 被重新写
要让派生类调用基类的__init__()方法进行必要的初始化,需要在派生类使用super函数调用基类的__init__()方法
super()调用父类(超类)的一个方法
super().add(x)