super代替类名

#当父类名改动时,显然需要改动内容巨大,所以用super方法
#super()代替了父类名,也不需要传递参数self,父类名可以随意改动不影响
class Vehichle1:
    Country='china'
    #名字='ales'不好这样
    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(Vehichle1):#要有自己的心的参,其他全继承
    def __init__(self,name,speed,load,power,line):
        # self.name = name
        # self.speed = speed
        # self.load = load
        # self.power = power
        # Vehichle.__init__(self,name,speed,load,power)
        super().__init__(name,speed,load,power)#
        #super方法不需要加self,父类名改动时完全无影响
        #self作为具体的实例内容
        # 子类的调用父类的参数名直接调用,也要加上self
        self.line=line
    def showinfo(self):
        print(self.name,self.line)
    def run(self):
        # Vehichle.run(self)#子类调用父类的方法,self必须加上
        super().run()
        print('%s开动了'%self.name)
line1=Subway('1号线','2km/h','23412人','',12)
line1.showinfo()
line1.run()

 

posted @ 2018-05-19 16:55  未来的技术  阅读(356)  评论(0编辑  收藏  举报