子类
class Car():
def __init__(self,make,model,year):
self.make=make
self.model=model
self.year=year
#设置默认值
self.odometer_reading=0
def get_descriptive_name(self):
long_name=str(self.year)+' '+self.make+' '+self.model
return long_name.title()
def read_odometer(self):
print("This car has "+str(self.odometer_reading)+" miles on it.")
#定义一个用来修改属性值的函数
def update_odometer(self,mileage):
if mileage>=self.odometer_reading:
self.odometer_reading=mileage
else:
print("You can't rool back an odometer!")
def increment_odometer(self,miles):
self.odometer_reading+=miles
#子类
class ElectricCar(Car):
def __init__(self,make,model,year):
super().__init__(make,model,year)
#父类英文superclass,super()让子类可以调用父类方法
self.battery_size=70#电动车的独有属性
def describe_battery(self):
print("This car has a "+str(self.battery_size)+"-kWh battery.")
my_tesla=ElectricCar('tesla','model s',2016)
print(my_tesla.get_descriptive_name())
my_tesla.describe_battery()
子类重写
如果父类存在一个方法,并不适合一个子类,你可以在该子类函数重写。在你创建一个子类对象时,调用该函数,python不会考虑该函数在父类是什么情况