• 2019年7月28日 在子类中调用父类的方法 happy birthday


    class Vehicle:
        country='China'
        def __init__(self,name,speed,load,power):
            self.name=name
            self.speed=speed
            self.load=load
            self.power=power
    
        def run(self):
            print('%s is running'%self.name)
    
    class Subway(Vehicle):
        def __init__(self,name,speed,load,power,line):
            # self.name=name
            # self.speed=speed
            # self.load=load
            # self.power=power
            Vehicle.__init__(self,name,speed,load,power)#子类中调用父类的方法,就是上面那段代码,这里self是需要的,因为是在对象在调用类的方法
            self.line=line
    
        def show_info(self):
            print(self.name,self.speed,self.load,self.power,self.line)
    
        def run(self):
            Vehicle.run(self)#注意传递self
    
    line13=Subway('bjdt','100km/s',5000,'E','13#')
    
    line13.show_info()
    
    line13.run()

    》》》

    bjdt 100km/s 5000 E 13#
    bjdt is running

    super()方法

    class Vehicle:
        country='China'
        def __init__(self,name,speed,load,power):
            self.name=name
            self.speed=speed
            self.load=load
            self.power=power
    
        def run(self):
            print('%s is running'%self.name)
    
    class Subway(Vehicle):
        def __init__(self,name,speed,load,power,line):
            # self.name=name
            # self.speed=speed
            # self.load=load
            # self.power=power
            # Vehicle.__init__(self,name,speed,load,power)#子类中调用父类的方法,就是上面那段代码,这里self是需要的,因为是在对象在调用类的方法
            super().__init__(name,speed,load,power) #super方法不用传递self,通过super方法可以直接调用父类方法
            self.line=line
    
        def show_info(self):
            print(self.name,self.speed,self.load,self.power,self.line)
    
        def run(self):
            # Vehicle.run(self)#注意传递self
            super().run() #super方法不用传递self,通过super方法可以直接调用父类方法
    line13=Subway('bjdt','100km/s',5000,'E','13#')
    
    line13.show_info()
    
    line13.run()

    >>>

    bjdt 100km/s 5000 E 13#
    bjdt is running

  • 相关阅读:
    一个Work Stealing Pool线程池的实现
    一步一步解剖Libevent源代码
    一步一步学习堆排序算法
    一个通用的Makefile框架
    为什么我们知道那么多道理(理论),却依然处理不好目前的生活
    SQL
    走进Java Map家族 (1)
    Java数组协变与范型不变性
    尝鲜Java 12新特性:switch表达式
    android高级UI之PathMeasure<一>--Path测量基础(nextContour、getPosTan、getMatrix、getSegment)
  • 原文地址:https://www.cnblogs.com/python1988/p/11260979.html
Copyright © 2020-2023  润新知