博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
第十一章、面向对象之多态、多态性
阅读量:5291 次
发布时间:2019-06-14

本文共 1173 字,大约阅读时间需要 3 分钟。

目录

第十一章、面向对象之多态、多态性

一、多态

多态指的是一类事物有多种形态

动物有多种形态:人、狗、猪

class Animal(): #同一类事物:动物    def talk(self):        passclass People(Animal): #动物的形态之一:人    def talk(self):        print('say hello')class Dog(Animal): #动物的形态之二:狗    def talk(self):        print('say wangwang')class Pig(Animal): #动物的形态之三:猪    def talk(self):        print('say aoao')

文件有多种形态:文本文件、可执行文件

class File(): #同一类事物:文件    def click(self):        passclass Text(File): #文件的形态之一:文本文件    def click(self):        print('open file')class ExeFile(File): #文件的形态之二:可执行文件    def click(self):        print('execute file')

二、多态性

在面向对象方法中一般是这样表示多态性:向不同的对象发送同一条消息(obj.func():是调用了obj的方法func,又称为向obj发送了一条消息func),不同的对象在接收时会产生不同的行为(即方法)。也就是说,每个对象可以用自己的方式去响应共同的消息。所谓消息,就是调用函数,不同的行为就是指不同的实现,即执行不同的函数

def func(obj):    obj.talk()-----------------------pig=Pig()func(pig)-----------------------#结果是say aoao

三、为什么要用多态性(多态性的好处)

  • 增加了程序的灵活性

  • 增加了程序拓展性

四、鸭子类型

Python崇尚鸭子类型,即‘如果看起来像、叫声像而且走起路来像鸭子,那么它就是鸭子’

#二者都像鸭子,二者看起来都像文件,因而就可以当文件一样去用class TxtFile:    def read(self):        pass    def write(self):        passclass DiskFile:    def read(self):        pass    def write(self):        pass

转载于:https://www.cnblogs.com/demiao/p/11424631.html

你可能感兴趣的文章
20162302 - 20162319 结对编程项目-四则运算(第一周)
查看>>
用python2和python3伪装浏览器爬取网页
查看>>
MySQL开启远程连接权限
查看>>
tomcat7.0.27的bio,nio.apr高级运行模式
查看>>
SAP HANA 三大特点
查看>>
C#预处理器命令
查看>>
苹果手表:大方向和谷歌一样,硬件分道扬镳
查看>>
ccf 出现次数最多的数
查看>>
单例模式
查看>>
Competing Consumers Pattern (竞争消费者模式)
查看>>
HDUOJ ------1398
查看>>
cf--------(div1)1A. Theatre Square
查看>>
Android面试收集录15 Android Bitmap压缩策略
查看>>
Tomcat 报错的解决方法:The APR based Apache Tomcat Native library which allows optimal
查看>>
最长公共子串问题(LCS)
查看>>
TortoiseSVN is locked in another working copy
查看>>
PHP魔术方法之__call与__callStatic方法
查看>>
ubuntu 安装后的配置
查看>>
Html学习_简易个人网页制作
查看>>
angular中ng-bind指令小案例
查看>>