什么是多态:
由不同的类实例化得到的对象,调用同一个方法,执行的逻辑不同。
多态的概念
指出了对象如何通过他们共同的属性和动作来操作及访问,而不需考虑他们具体的类。
多态表明了动态(又名,运行时)绑定的存在,允计重载及运行时类型确定和验证。
类的继承有两层意义:1.改变 2.扩展
多态就是类的这两层意义的一个具体的实现机制即,调用不同的类实例化得对象下的相同的方法,实现的过程不一样
python中的标准类型就是多态概念的一个很好的示范
代码示例一:s1 = 'abc'
l1 = [1, 2, 3]
print(s1.__len__()) # 等同于len(s1)
print(l1.__len__()) # 等同于len(l1)
代码示例二:class H2O:
def __init__(self, name, temperature):
self.name = name
self.temperature = temperature
def turn_ice(self):
if self.temperature
print('[%s]温度太低结冰了' % self.name)
elif self.temperature > 0 and self.temperature
print('[%s]液化成水' % self.name)
elif self.temperature > 100:
print('[%s]温度太高变成了水蒸气' % self.name)
class Water(H2O):
pass
class Ice(H2O):
pass
class Steam(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()
func(s1) # s1.turn_ice()
w2 = Water('水', 101)
func(w2)
python本身就是一个多态,多态是继承的体现方式