Python多态

作者:管理员 发布时间:2020-12-02 16:14

从应用,讲概念。

比如有这个一个需求,我们现在需要开发一个软件,需要实现多语言版本(中文、英文),未来可能扩展6-7门语言,不同语言需求的用户,呈现语言不同;

如何开发呢?

每种语言开发一遍肯定是不太现实,我们可以使用多态的概念:

#多态
class Animal:
    def shout(self):
        print("小狗叫了一声,汪汪汪...")
class Dog(Animal):
    def shout(self): #只有继承和重写父类方法,才存在多态,不然都是一样的,不存在多态
        print("小狗汪汪汪...")
class Pig(Animal):
    def shout(self):
        print("小猪昂昂昂...")
 
s = Dog()
s.shout()
s = Pig()
s.shout() #多态: 一个方法调用,根据对象不对调用不同的方法

我们在默认情况下,s=Animal(), 执行shout()时,使用一种语言,s = Dog()又客户换一种语言;

这段代码中分别写了Animal、Dog、Pig三种语言,如果我们还需要再加一种语言,扩展起来就很方便:

比如,再单独写个类文件

class tiger(Animal):
    def shout(self):
        print("老虎,嗷喔~...")

 
s = tiger()
s.shout()

这样,在不影响原来的代码基础上,我们就很容易扩展出来一个新的语言了。

从此可以看出:

多态的核心作用,就是让程序具备更好的扩展性!



标签:
Copyright © 2020 万物律动 旗下 AI算法狮 京ICP备20010037号-1
本站内容来源于网络开放内容的收集整理,并且仅供学习交流使用;
如有侵权,请联系删除相关内容;