Python入门笔记—第九章【面向对象之OOP(第三部分,多态&多态性)】
2018-10-08 14:16
381 查看
第九章:面向对象之OOP(第三部分,多态&多态性)
2.5 多态
- 指一类事物或对象在不同的情况下有不同的状态
- 如:序列状态下有多种形态:列表,元祖,集合,字典等
- 如:动物有多种形态:人类,猪类,狗类等
- 多态不是语法,是一种设计思想
代码实例:
[code]#多态 class Animal(): def run(self): pass class Person(Animal): def run(self): print("Walking") class Dog(Animal): def run(self): print("Walking") class Pig(Animal): def run(self): print("Walking") per = Person() dog = Dog() pig = Pig() per.run() dog.run() pig.run()
2.6 多态性
- 向不同的对象发送同一条消息(函数),不同的对象在接收时会产生不同的行为,即:同一种调用方式,不同的执行结果
代码实例:
[code]#多态性 class Animal(): def run(self): pass class Person(Animal): #人类 def talk(self): print("Say Hello") class Dog(Animal): #狗类 def talk(self): print("Say Wangwang") class Pig(Animal): #猪类 def talk(self): print("Say Honghong") def talk(animal): #此处只定义了一个函数 animal.talk() per = Person() dog = Dog() pig = Pig() talk(per) #当使用同一种调用方式时,出现不同的结果,称之为多态性 talk(dog) talk(pig)
结果:
Say Hello
Say Wangwang
Say Honghong
2.6.1 使用多态性的好处
- 增加了程序的灵活性。不论对象千变万化,都是使用同一个方法(函数)调用
- 增加的程序的可扩展性。使用Animal继承的一个新类,无需去更改原本的代码,还是使用函数talk()去调用
2.7 多态和多态性的区别
- 多态:从定义角度上看
- 多态性:从调用(执行)角度上看
阅读更多
相关文章推荐
- Python入门笔记—第十二章【面向对象之OOP(第七部分,类和对象的三种方法)】
- Python入门笔记—第十一章【面向对象之OOP(第五部分,类相关函数&成员描述符&成员属性)】
- Python入门笔记—第十二章【面向对象之OOP(第六部分,类的常用魔术方法)】
- 译:C#面向对象的基本概念 (Basic C# OOP Concept) 第三部分(多态,抽象类,虚方法,密封类,静态类,接口)
- Python入门笔记—第十三章【面向对象之OOP(第九部分,自定义类)】
- 【python学习笔记】Python面向对象的理解(封装,继承,多态)
- Python入门笔记(Python常用函数<部分>及小知识点)
- Python学习笔记-Day03 -第三部分(迭代器和生成简介)
- python学习笔记-Day04-第三部分(内置函数,map,filter,reduce,yield)
- Solr入门之官方文档6.0阅读笔记系列(六) 第三部分开始
- python学习笔记-Day02 -第三部分 浅拷贝和深拷贝
- Python入门笔记(18):Python函数(1):基础部分
- Python 学习笔记 - 面向对象(封装,继承和多态)
- C#面向对象(OOP)入门—第二天—多态和继承(继承)
- Java 面向对象 第三部分(多态)
- [置顶] 【第三部分-django论坛从搭建到部署】一个完整的Django入门指南学习笔记
- C#面向对象(OOP)入门—第二天—多态和继承(继承)
- Python 面向对象(创建类和对象,面向对象的三大特性是指:封装、继承和多态,多态性)
- Java入门笔记-(面向对象:封装,多态,继承)
- 初学Python的学习笔记8----面向对象、数据封装、访问限制、继承和多态