




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
面向对象三大特性江苏电子职业学院Python物联网02继承面向对象继承概念所有属于同一个类的对象都具有相同的特性和操作继承这个概念在类拟于生物界中的遗传。后代具有先辈的特征和行为能力。在程序设计中继承是为代码复用和设计复用而设计的,是面向对象程序设计的重要特性之一。是指子类可以继承父类中已定义好的属性和方法(函数),而不需要重新定义,这样会大幅度减少开发工作量。在继承关系中,已有的、设计好的类称为父类或基类,新设计的类称为子类或派生类。classAnimal:passclassCat(Animal):#表示该类继承类Animalpass面向对象继承概念所有属于同一个类的对象都具有相同的特性和操作猫有:喵喵叫、吃、喝、拉、撒等行为;狗也有:汪汪叫、吃、喝、拉、撒等行为;如果我们要分别为猫和狗创建一个类,那么就需要为猫和狗分别实现他们所有的功能。为了提高效率,尽可能复用代码,我们可以把共同部分:吃、喝、拉、撒,抽象出来,定义一个猫和狗的父类。classCat(Animal):自动继续父类中的eat(),drink(),shit(),pee()方法,同时又有自己的cry()方法和属性name,breed。classAnimal:defeat(self):print("%s吃"%)defdrink(self):print("%s喝"%)defshit(self):print("%s拉"%)defpee(self):print("%s撒"%)classCat(Animal):def__init__(self,name):=nameself.breed="猫"defcry(self):print('喵喵叫')classDog(Animal):def__init__(self,name):=nameself.breed="狗"defcry(self):print("汪汪叫")面向对象继承原则所有属于同一个类的对象都具有相同的特性和操作派生类可以继承父类的公有成员,但是不能继承其私有成员。方法重写,子类中同名的方法会敷盖父类中同名的方法。这时如果需要在派生类中调用基类的方法,可以使用内置函数super()或者通过“基类名.方法名()”的方式来实现这一目的。面向对象重写所有属于同一个类的对象都具有相同的特性和操作子类Bar继承父类Foo,继承了方法f1和f2;b.f2()会在父类Foo中找到f2,先打印输出”父类中的方法f2”。接下来执行到self.f1(),即b.f1(),会按照:对象本身->类Bar->父类Foo的顺序依次查找。然后在子类中Bar中找到f1,输出“子类中的方法f1”classFoo:deff1(self):print("父类中的方法f1")deff2(self):print("父类中的方法f2")self.f1()classBar(Foo):#子类继承了方法f1,f2,同时又对f1进行了重写
deff1(self):print("子类中的方法f1")defdof(self):self.f1()super().f1()#调用父类中的方法b=Bar()b.f2()#调用继承来的方法f2b.dof()面向对象重写所有属于同一个类的对象都具有相同的特性和操作父类如果不想让子类继承或不想让子类覆盖自己的方法,可以采用双下划线开头的方式将方法设置为私有的。classFoo:def__f1(self):print("父类中的方法f1")deff2(self):print("父类中的方法f2")self.f1()classBar(Foo):#子类继承了方法f1,f2,同时又对f1进行了重写
def__f1(self):print("子类中的方法f1")b=Bar()b.f2()#调用继承来的方法f2未改写父类Foo中的方法__f1()面向对象多继承所有属于同一个类的对象都具有相同的特性和操作Python支持多继承如果父类中有相同的方法名,而在子类中使用时没有指定父类名,则Python解释器将从左向右按顺序进行搜索。多继承使用要慎用super()。classFather:def__init__(self):self.sex="男"defhobby(self):print("业余爱好是打游戏!")defwork(self):#两个父类中方法重名print("能做体力活")classMother:def__init__(self):self.sex="女"defcook(self):print("喜欢烹饪!")defwork(self):#两个父类中方法重名print(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年湖南省长沙市湘郡培粹实验中学中考模拟地理试卷(含答案)
- 2025年全民科学素质知识竞赛题库及答案(共90题)
- 2025年公共卫生政策与实施考试卷及答案
- 肿瘤防治联盟介绍
- 行车公寓客房保洁方案,行车公寓食堂承包方案
- 怎样做好患者健康教育
- 新入职公务员培训课程
- 自身免疫性脑炎护理查房指南
- 2025年智能制造工程师资格考试试卷及答案
- 夏季运输安全培训
- 2025至2030年中国汽车轮毂轴承行业市场全景评估及发展趋势研判报告
- 2025年《安全生产月》活动总结报告
- 2025年江苏高考真题化学试题(解析版)
- 2024协警辅警考试公安基础知识考试速记辅导资料
- 安徽省马鞍山市2023-2024学年高一下学期期末教学质量监测化学试卷(含解析)
- 初三化学最后一课-主题班会【课件】
- 中国强军之路课件
- 2025-2030中国风力发电机机舱行业市场现状供需分析及投资评估规划分析研究报告
- 2025年安全生产月主题培训 (编号30)
- 2024-2025学年浙江省宁波市镇海中学高二下学期期中考试数学试卷(含答案)
- 外墙蜘蛛人合同协议
评论
0/150
提交评论