多态与多态性
day29
多态:同一种事物的多种形态,动物分人类、猪类(从定义角度)
多态性:一种调用方式,不同的执行效果(从使用角度)
例子说明:
# 多态:同一种事物的多种形态,动物分人类、猪类
class Animal:
def run(self):
raise AttributeError("子类必须要实现这个方法") # 当子类没有进行方法实现的时候抛出异常信息
class Poeple(Animal):
def run(self):
print("人在跑")
class Pig(Animal):
def run(self):
print("Pig is walking...")
peo1 = Poeple()
pig1 = Pig()
# peo1.run()
# pig1.run()
# 多态性依赖于:
# 1.继承
# 2.
# 多态性:定义统一的接口:
def func(obj): # obj这个参数没有类型限制,可以传入不同类型的值
obj.run() # 调用的逻辑都一样,执行的结果却不一样
func(peo1)
func(pig1)
输出:
人在跑
Pig is walking...
其实多态很早就用过,如:
使用多态性的好处:
其实大家从上面多态性的例子可以看出,我们并没有增加什么新的知识,也就是说python本省就是支持多态性的,这么做的好处是什么呢?
-
增加了程序的灵活性
以不变应万变,不论对象千变万化,使用者都是同一种形式去调用,如func(animal)
-
增加了程序可扩展性
通过继承animal类创建了一个新的类,使用者无需更改自己的代码,还是用func(animal)去调用
共有 0 条评论