《Python编程基础》课件-5.2.1继承基础_第1页
《Python编程基础》课件-5.2.1继承基础_第2页
《Python编程基础》课件-5.2.1继承基础_第3页
《Python编程基础》课件-5.2.1继承基础_第4页
《Python编程基础》课件-5.2.1继承基础_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

继承基础教学目标1.了解什么是继承?

2.了解继承的优势

3.掌握单继承的基本实现

4.了解继承父类方法

5.了解方法覆盖(Overriding)继承是面向对象编程(OOP)中的核心概念,它允许一个类(子类)从另一个类(父类)获取属性和方法,从而实现代码复用和层次结构。在Python中,继承通过在类定义时指定父类来实现,例如classChild(Parent)。核心概念:继承促进“Is-a”关系,例如“狗”继承“动物”,意味着狗是一种动物。子类自动获得父类的公有成员,但可以添加新成员或覆盖现有成员。这减少了重复代码,提高了可维护性。1、什么是继承?

classAnimal:#父类定义def__init__(self,name):#构造函数初始化名称=name#实例属性defeat(self):#父类方法print(f"{}iseating.")#输出吃的行为classDog(Animal):#子类继承Animalpass#暂无额外定义,继承所有继承的优势包括代码复用、逻辑层次化和易扩展性。核心概念:通过继承,子类可以重用父类代码,同时添加特定行为,避免从零编写通用功能。在实际应用中,继承用于建模现实层次,如图形系统中Rectangle继承Shape。这在Python项目中常见,例如游戏开发中角色继承基类。避免过度使用导致紧耦合。2.继承的优势和应用场景

classVehicle:#父类def__init__(self,speed):#初始化速度self.speed=speed#属性defmove(self):#方法print(f"Movingat{self.speed}km/h.")#输出移动classCar(Vehicle):#子类defhonk(self):#新方法print("Beep!")#添加汽车特有行为单继承指子类只有一个父类,是继承的最简单形式。核心概念:在Python中,子类构造函数需调用super().init()来初始化父类属性。这确保父类状态正确设置。单继承适合线性层次,如Employee继承Person。3.单继承的基本实现classPerson:#父类def__init__(self,name):#初始化=name#属性classEmployee(Person):#子类def__init__(self,name,salary):#扩展构造函数super().__init__(name)#调用父类initself.salary=salary#新属性defwork(self):#新方法print(f"{}isworking.")子类自动继承父类方法,无需重定义即可调用。核心概念:继承方法使用self访问,确保上下文正确。这允许子类复用通用行为,如所有动物继承eat方法。Python中,方法继承是隐式的,但可通过dir()查看。4.继承父类方法

classBird:#父类deffly(self):#方法print("Flyinghigh.")#行为classEagle(Bird):#子类pass#继承fly方法eagle=Eagle()#实例化eagle.fly()#调用继承方法,输出:Flyinghigh.方法覆盖允许子类重新定义父类方法,以实现特定行为。核心概念:覆盖时,子类方法签名相同,但实现不同。使用super()可调用父类版本。这是多态的基础,例如不同形状计算面积。5.方法覆盖(Overriding)classShape:#父类defarea(self):#方法return0#默认返回classCircle(Shape):#子类def__init__(self,radius):#初始化self.radius=radiusdefarea(self):#覆盖return3.14*self.radius**2#特定计算super()调用父类方法,尤其在覆盖中扩展行为。在Python中,super().init()初始化父属性,支持多继承MRO。核心概念:super()遵循MRO,确保正确调用链。6.使用super()#super()使用classBase:#父类defgreet(self):#方法print("HellofromBase")classDerived(Base):#子类defgreet(self):#覆盖super().greet()#调用父print("HellofromDerived")d=Derived()#实例d.greet()#输出:HellofromBase\nHellofromDerived陷阱包括过度覆盖、循环继承。在Python中,避免菱形继承。核心概念:陷阱导致bug,检查MRO。7.继承陷阱#陷阱示例#classA(B):pass;classB(A):pass#循环错误小结1.继承允许子类从父类获取属性和方法,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论