码迷,mamicode.com
首页 > 编程语言 > 详细

python类继承

时间:2021-01-30 11:58:41      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:icc   帮助   car   class   类继承   span   long   ack   this   

#类是另一个类的特殊版本,可以使用继承。一个类继承另一个类时会自动获得另一个类的所有属性和方法。原来的类称为父类,新类称为子类。
#同时新类可以定义自己的属性和方法
#子类的方法:__init__()
#super()是特殊函数,帮助python将父类和子类关联起来,这行代码让python调用父类的方法__init__(),让子类包含父类所有属性。
1.创建父类
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):
        # print(str(self.make)+" "+self.model+  + self.year)
        long_name=str(self.make)+" "+self.model+  + str(self.year)
        return long_name
    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 roll back an odometer")
    def increment_odometer(self,miles):
        self.odometer_reading+=miles
2.创建子类
class ElectricCar(Car):
    def __init__(self,make,model,year):
        super().__init__(make,model,year)  #super()是特殊函数,帮助python将父类和子类关联起来,
#调用子类
my_bmw=ElectricCar(‘bma‘,‘model x99‘,2099)
print(my_bmw.get_descriptive_name()) #bma model x99 2099

3.创建子类特殊属性和方法

class ElectricCar(Car):
    def __init__(self,make,model,year):
        super().__init__(make,model,year)
        self.battery_size=70    #类中的每个属性都必须有初始值,如果在方法__init__中制定初始值,就无需包含形参
    def describe_battery(self):
        print("this car has a" + str(self.battery_size) + "-kwh battery.")
my_bmw=ElectricCar(bma,model x99,2099)
print(my_bmw.get_descriptive_name())  #bma model x99 2099
my_bmw.describe_battery()  #this car has a70-kwh battery.

#不定义初始值的方法
class ElectricCar(Car):
    def __init__(self,make,model,year,battery_size):
        super().__init__(make,model,year)
        self.battery_size= battery_size   #类中的每个属性都必须有初始值,如果在方法__init__中制定初始值,就无需包含形参
    def describe_battery(self):
        print("this car has a" + str(self.battery_size) + "-kwh battery.")
my_bmw=ElectricCar(bma,model x99,2099,70)
print(my_bmw.get_descriptive_name())  #bma model x99 2099
my_bmw.describe_battery()  #this car has a70-kwh battery.
4.子类重写父类方法,父类的一些属性子类不需要可以重写父类

class ElectricCar(Car):
    def fill_gas_tank(self):
        print("this car doesn‘t need a gas tank")  #会跳过父类的方法执行子类重写的方法

 



python类继承

标签:icc   帮助   car   class   类继承   span   long   ack   this   

原文地址:https://www.cnblogs.com/youngyounglady/p/14345899.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!