python-面向对象-23-多态

    技术2022-07-12  75

    多态(polymorphism)是指同一个方法调用由于对象不同可能产生不同的行为。在现实生活中,我们有很多例子。比如:同样是吃饭:

    中国人用筷子吃饭英国人用刀叉吃饭印度人用手吃饭

    关于多态要注意一下2点:

    多态是方法的多态,属性没有多态。

    多态的存在有两个必要条件:继承、方法重写。

    示例代码:

    class Animal: def shout(self): print("动物叫了一声") class Dog(Animal): def shout(self): print("汪汪汪...") class Cat(Animal): def shout(self): print("喵喵喵...") def animal_shout(a): if isinstance(a, Animal): a.shout() else: print("不能shout") animal_shout(Animal()) animal_shout(Dog()) animal_shout(Cat())

    运行结果:

    动物叫了一声 汪汪汪... 喵喵喵...

    程序说明:

    首先定义类Animal,包含方法shout()。紧接着定义类Dog,指明继承Animal,定义方法shout(),最后定义类Cat,指明继承Animal,定义方法shout()。定义了一个animal_shout,首先判断是否为类Animal的实例,如果是,则执行shout()方法,如果不是,则提示:不能shout,确保程序运行不会出现问题。首先调用animal_shout(Animal()),因为Animal(),返回的Animal的实例,调用Animal实例的shout()方法,则打印输出:动物叫了一声。当运行对象为Dog()和Cat()分别返回对应的实例,因为各自方法里面均有定义shout()方法,均调用自己的方法,分别输出对应的内容:汪汪汪...和喵喵喵...。

    以上就是关于Python面向对象-多态知识点的简单介绍。


    备注: 更多精彩博客,请访问:聂发俊的技术博客 对应视频教程,请访问:python400 完整markdown笔记,请访问: python400_learn_github

    Processed: 0.015, SQL: 10