类(六)--多态--基于继承而来的不同子类实例化,调用同一父类的方法

class H2O:   ##定义一个父类
    def __init__(self,name,temperature):
        self.name=name
        self.temperature=temperature
    def turn_ice(self):
        if self.temperature < 0:
            print('[%s]温度太低结冰了' %self.name)
        elif self.temperature > 0 and self.temperature < 100:
            print('[%s]液化成水' %self.name)
        elif self.temperature > 100:
            print('[%s]温度太高变成了水蒸气' %self.name)
class Water(H2O): ##子类一,继承父类H2o的属性
    pass
class Ice(H2O):   ##子类二,继承父类H2o的属性
    pass
class Steam(H2O): ##子类三,继承父类H2o的属性
    pass
w1=Water('',25) ##子类一实例化
i1=Ice('',-20)  ##子类二实例化
s1=Steam('蒸汽',3000)  ##子类三实例化
def func(obj):
    obj.turn_ice()
func(w1)  #---->w1.turn_ice() ##不同的实例化,调用同一父类的方法。
func(i1)  #---->i1.turn_ice()

 总结:

1.多态基于继承而来

2.父类的同一方法,可以由不同的子类调用

3.通过子类的实例化,实现多态的过程

 理解:同一个简历模板,给不同的人使用。简历模板就是父类,不同的人就是子类,填写的内容就是实例化。

    

posted @ 2020-04-20 21:24  无聊就看书  阅读(499)  评论(0编辑  收藏  举报