# 面向对象的三大特性之多态
# 多态 由不同的类实例化得到的对象,调用同一个方法,执行的逻辑不同
# 多态的概念指出了对象如何通过他们的属性和动作来操作及访问,而不需要考虑他们具体的类
# 多态表明了动态(运行时)绑定的存在,允许重载及运行时类型确定和验证
# 多态是由同一个类实例化出的多个对象,这些对象执行方法时,执行的过程和结果是不一样的
class H2O: # 定义了一个水的基类
def __init__(self, name, temp): # 初始化实例属性
self.name = name
self.temp = temp
def turn(self): # 定义函数属性,根据传入的温度来判断输出的内容
if self.temp < 0:
print('%s 温度太低结冰了' % self.name)
elif self.temp > 100:
print('%s 温度太高变为水蒸气' % self.name)
else:
print('%s 在(0-100)度之间为水' % self.name)
# 定义了三个子类,水,冰,蒸气,继承至H2O
class Water(H2O):
pass
class Ice(H2O):
pass
class Stream(H2O):
pass
# 实例化对象
w1 = Water('水', 40)
i1 = Water('冰', -10)
s1 = Water('蒸汽', 200)
# 执行继承自父类的相同方法,显示结果不同
w1.turn()
i1.turn()
s1.turn()