【1.110】继承中 子类中调用父类方法

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('开动啦')
        print('开动啦')
class Subway(Vehicle):
        def __init__(self,name,speed,load,power,line):
           Vehicle.__init__(self,name,speed,load,power)  #注意self self 只有在实例化 或者 对象调用的时 才会自己传值 这里类自己调用 所以必须写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)
            print('%s %s 线,开动啦' %(self.name,self.line))
line13=Subway('北京地铁','10km/s',1000000000,'',13)

line13.show_info()

line13.run()

 

 

用super 调用   你即使改了 基类的名字 也可以用父类的方法 不用到子类再去修改名字

不用写 父类名字 

不用传self  自己就给我们传了

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('开动啦...')

class Subway(Vehicle): #地铁
    def __init__(self,name,speed,load,power,line):
#super(Subway,self) 就相当于实例本身 在python3中super()等同于super(Subway,self)

#super(__class__,self).__init__(name,speed,load,power)
     #super(Subway,self).__init__(name,speed,load,power)
     #super().__init__(name,speed,load,power) #三者一样
super().__init__(name,speed,load,power) self.line=line def run(self): print('地铁%s号线欢迎您' %self.line) super(Subway,self).run() class Mobike(Vehicle):#摩拜单车 pass line13=Subway('中国地铁','180m/s','1000人/箱','',13) line13.run()
print(line13.__class__)

 

posted @ 2016-05-15 19:33  科学小怪癖  阅读(111)  评论(0)    收藏  举报