首页 > 其他 > 详细

类——重写

时间:2019-12-18 18:45:11      阅读:88      评论:0      收藏:0      [点我收藏+]
class Car():
    ‘‘‘一次模拟汽车的简单尝试‘‘‘

    def __init__(self,make,model,year):
        ‘‘‘初始化描述汽车的属性:制造商、型号、生产年份‘‘‘

        self.make = make
        self.model = model
        self.year = year
        self.odometer_reading = 24              #里程表读数

    def update_odometer(self,mileage):      #修改属性值
        ‘‘‘将里程表读数设置为指定的值‘‘‘

        self.odometer_reading += mileage


    def get_descriptive_name(self):
        ‘‘‘返回整洁的描述信息‘‘‘

        long_name = str(self.year) +     + self.make +     + self.model

        return  long_name.title()

    def read_odometer(self):
        ‘‘‘打印一条指出汽车里程的信息‘‘‘
        print(这辆车的汽车里程是:   + str(self.odometer_reading))


    def fill_gas_tank(self):
        ‘‘‘汽车油箱‘‘‘

        print(汽车有油箱)


#--------------------------------------------------------------------

class ElectricCar(Car):
    ‘‘‘电动车的独特之处‘‘‘

    def __init__(self,make,model,year):
        ‘‘‘初始化父类属性‘‘‘
        super().__init__(make,model,year)

        self.battery_size = 70            #添加一个电动车特有的属性:电瓶,以及电瓶容量


    def describe_battery(self):
        ‘‘‘打印一条描述电瓶容量的信息‘‘‘

        print(这辆电动车有:  + str(self.battery_size) +  的电瓶容量)

    def fill_gas_tank(self):               #重写父类的方法
        ‘‘‘电动车有电瓶‘‘‘

        print(汽车有电瓶)



my_tesla = ElectricCar(特斯拉,model  s ,2016)

print(my_tesla.get_descriptive_name())

#-------------------------------------------------------

my_tesla.read_odometer()

my_tesla.describe_battery()

#-------------------------------------------------

my_tesla.battery_size = 100

my_tesla.describe_battery()


my_tesla.fill_gas_tank()          #实例,调用被重写的此方法

=========================================================================================


执行结果:




2016   特斯拉   Model  S 

这辆车的汽车里程是:  24

这辆电动车有: 70 的电瓶容量

这辆电动车有: 100 的电瓶容量

汽车有电瓶


==========================================================================================


对于父类的方法,只要它不符合子类模拟的实物行为,都可以对其进行重写。


为此,可以在子类中定义一个与要重写的父类方法同名,这样python将不会考虑这个父类方法,


而只关注你在子类中定义的相应的方法。

类——重写

原文:https://www.cnblogs.com/xiaobaibailongma/p/12061326.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!