(高职)7.3 多态ppt课件.pptx

上传人:春哥&#****71; 文档编号:14912634 上传时间:2022-05-09 格式:PPTX 页数:8 大小:100.79KB
返回 下载 相关 举报
(高职)7.3 多态ppt课件.pptx_第1页
第1页 / 共8页
(高职)7.3 多态ppt课件.pptx_第2页
第2页 / 共8页
点击查看更多>>
资源描述

《(高职)7.3 多态ppt课件.pptx》由会员分享,可在线阅读,更多相关《(高职)7.3 多态ppt课件.pptx(8页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、7.3 多态PYTHON 程序设计丁辉 商俊燕 范晓玲第七章 面向对象程序设计u7.1 面向对象程序设计基础面向对象程序设计基础u7.2 继承继承u7.3 多态多态u7.4 面向对象精选案例面向对象精选案例u小结小结2022年5月9日32022年5月9日4 多态多态(polymorphism)指的是一类事物有多种形态,一个抽象类有多个子类,因而多态多态的概念依赖于继承依赖于继承。如下,Animal动物类,又分为Dog狗类、Cat猫类、Tiger虎类。#定义基类(父类),其实基类本身也是继承了Python中的object类 class Animal(object): def _init_(sel

2、f, name): self.name=name def saymyself (self): #定义基类的方法 print( In_Animal_class : I am a .format(self.name) class Cat(Animal): #定义子类 def saymyself (self): #同名的方法实现不同的功能 print( In_Cat_class : I am a .format(self.name) class Dog(Animal): #定义子类 def saymyself (self): #同名的方法实现不同的功能 print( In_Dog_class: I

3、am a .format(self.name) class Tiger(Animal): #定义子类 def saymyself (self): #同名的方法实现不同的功能 print( In_Tiger_class: I am a .format(self.name)7.3 多态 2022年5月9日5 def testfunc(obj): #定义一个调用函数 print( say :.format(obj.name) #输出实例的name属性值 obj.saymyself() #调用实例的方法 animal1 = Animal(animal) #创建不同的对象 cat1 = Cat(cat)

4、 dog1 = Dog( dog ) tiger1 = Tiger(tiger) lst = animal1,cat1,dog1,tiger1 for i in lst: print(i.name) testfunc(i)animal #输出基类实例对象的属性animal say : In_Animal_class : I am a animal . #通过基类实例对象调用基类实例对象的方法cat #输出子类实例对象的属性cat say : In_Cat_class: I am a cat . #通过子类实例对象调用子类实例对象同名的方法,表现出多态dog #输出子类实例对象的属性dog sa

5、y :In_Cat_class: I am a dog . 7.3 多态 2022年5月9日6tiger #输出子类实例对象的属性tiger say :In_Tiger_class: I am a tiger . isinstance(animal1,Animal)True isinstance(cat1,Animal)True isinstance(cat1,Cat)True isinstance(dog1,Animal)True isinstance(dog1,Dog)True isinstance(dog1,Cat)False7.3 多态 2022年5月9日7 多态体现在多个方面:(1)

6、方法的多态性,上述所定义的Cat、Dog、Tiger类都继承了Animal类,但是每个子类都对父类的saymyself()进行了重新定义,从而体现了方法的多态性。(2)变量的多态性,通过isinstance()函数的测试可以看到,dog1既是Animal的实例,又是Dog的实例,以此可以看到变量的多态性。(3)参数的多态性,“def testfunc(obj):”所定义函数的参数obj,可以是任何的对象,因此在“ for i in lst: print(i.name) testfunc(i)” 语句中调用testfunc()时,分别传递了animal1、cat1、dog1和tiger1实例对象。从而体现了参数的多态性,其实我们在第5章函数部分,就已经在用了参数的多态性,当时我们定义了add(x,y)函数,可以对整数、实数、复数以及列表、元组和字符串求和,所求的和,是根据输入参数来确定的。7.3 多态 2022年5月9日8

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁