首页 » 编程 » Python » 正文

多态与多态性

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...

 

其实多态很早就用过,如:

003.png

 

使用多态性的好处:

其实大家从上面多态性的例子可以看出,我们并没有增加什么新的知识,也就是说python本省就是支持多态性的,这么做的好处是什么呢?

  1. 增加了程序的灵活性

    以不变应万变,不论对象千变万化,使用者都是同一种形式去调用,如func(animal)

  2. 增加了程序可扩展性

    通过继承animal类创建了一个新的类,使用者无需更改自己的代码,还是用func(animal)去调用

 

发表评论