zoukankan      html  css  js  c++  java
  • ~~核心编程(七):面向对象——多态~~

    进击の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文件!
    

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

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


    *面向对象讲完了*
    *接下来就是硬货*
  • 相关阅读:
    删除无效的SQL SERVER组中的注册的几种方法
    SQLServer中把某个表里的记录复制到另一个数据库的表中
    文件上传 带进度条(多种风格)
    Team Leader你会带团队吗?你懂合作吗?你好像都不会啊!(上)
    整理.Net代码生成器(转)
    SQL SERVER 2000数据库,转换为ACCESS数据库(已解决ACCESS自动编号问题)
    js中prototype用法
    js在火狐和IE浏览器的差异
    Varnish介绍
    C# 4.0 新特性
  • 原文地址:https://www.cnblogs.com/jevious/p/11209304.html
Copyright © 2011-2022 走看看