~~核心编程(七):面向对象——多态~~

进击のpython

*****

多态


多态,什么叫多态?

多态拆开就是多种状态

什么是多种状态呢?

姑娘还有两副面孔呢┗|`O′|┛ 嗷~~


怎么说呢?多种状态更纯粹更现实的来说

就是要对不一样的对象有不一样的处理方法

比如说你的电脑里有一个wps软件是吧

当你双击一个pdf文件,或者双击一个doc文件的时候

其实都是先打开wps软件,然后看看是什么样子的数据类型

然后再打开相应的文档编辑器


面向对象里 类 也有这个特性

比如我们先定义一个动物类

然后我想整个动物叫,怎么说呢?

我传进来个狗,打印个汪汪汪

我传进来个猫,打印个喵喵喵

怎么做?

class Dogs(object):
    def sound(self):
        print("汪汪汪!")

    pass


class Cats(object):
    def sound(self):
        print("喵喵喵!")

    pass


def Animals(animals):
    animals.sound()
    pass


d = Dogs()
c = Cats()

Animals(d)
Animals(c)
汪汪汪!
喵喵喵!

为什么有多态的这种感觉呢?

是因为这样就把这个动物叫的方法的口统一了

无论是什么动物,调用方法就是Animals

这样就保证了调用的统一

这也就是一个接口的多种形态

也就是多态


那我们简单知道了多态之后

我们试试模拟一下这个wps打开文件的方式

class Pdf(object):
    def show(self):
        print("打开了PDF文件!")

    pass


class Word(object):
    def show(self):
        print("打开了Word文件!")

    pass


def open(file):
    file.show()


a = Pdf()
b = Word()
c = Pdf()

for i in (a, b, c):
    i.show()
打开了PDF文件!
打开了Word文件!
打开了PDF文件!

(我觉得,你能看到这个位置,这些代码应该不用我再仔细讲)

(以后的文章也是,除非重要的需要讲的代码块以外,都不会注释)


*面向对象讲完了*
*接下来就是硬货*
原文地址:https://www.cnblogs.com/jevious/p/11209304.html