zoukankan      html  css  js  c++  java
  • 类——重写

    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将不会考虑这个父类方法,
    
    
    而只关注你在子类中定义的相应的方法。
  • 相关阅读:
    用代码操作文件(文件夹)
    文件上传
    用ajax、PHP、session做购物车
    ajax返回数据类型为JSON数据的处理
    Hadoop机架感知
    Linux 克隆虚拟机以及克隆之后引起的“Device eth0 does not seem to be present, delaying initialization”问题解决
    克隆之后一键修改IP、删除Mac地址、修改主机名(未测试成功只是思路)
    关于Hadoop的杂乱无章(续更)
    使用CentOS6.8搭建Hadoop集群
    CentOS6.8卸载与安装yum
  • 原文地址:https://www.cnblogs.com/xiaobaibailongma/p/12061326.html
Copyright © 2011-2022 走看看