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.通过子类的实例化,实现多态的过程
理解:同一个简历模板,给不同的人使用。简历模板就是父类,不同的人就是子类,填写的内容就是实例化。