《Python编程基础》课件-5.1.2面向对象进阶_第1页
《Python编程基础》课件-5.1.2面向对象进阶_第2页
《Python编程基础》课件-5.1.2面向对象进阶_第3页
《Python编程基础》课件-5.1.2面向对象进阶_第4页
《Python编程基础》课件-5.1.2面向对象进阶_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

面向对象进阶教学目标1.了解什么是继承2.掌握单继承和多继承3.了解方法解析顺序的概念和应用4.理解多态的定义5.掌握方法覆盖的技术继承允许子类从父类获取属性和方法,促进代码复用。核心概念:在Python中,使用classChild(Parent):定义子类。子类可以扩展或覆盖父类行为。这是OOP的核心,减少重复代码,例如动物类继承到狗类。注意方法解析顺序(MRO)在多继承中。1、什么是继承?classAnimal:#父类defeat(self):#父类方法print("Eating...")classDog(Animal):#子类继承Animaldefbark(self):#子类新方法print("Woof!")单继承是子类只有一个父类的情况。核心概念:子类自动继承父类所有公有成员。可以使用super()调用父类方法。适合简单层次,如形状类到圆类。构建层次化模型。2.单继承示例

classPerson:#父类def__init__(self,name):#初始化=nameclassStudent(Person):#子类def__init__(self,name,grade):#扩展初始化super().__init__(name)#调用父类构造函数self.grade=grade#新属性多继承允许子类有多个父类。核心概念:Python使用C3线性化算法确定方法解析顺序(MRO),可用Class.__mro__查看。这在进阶OOP中用于混合功能,如日志和计算类。3.多继承和MRO

classA:#父类Adefmethod(self):print("A")classB:#父类Bdefmethod(self):print("B")classC(A,B):#多继承passC().method()#输出:A,根据MRO多态允许不同类的对象以相同方式响应相同方法调用。核心概念:通过继承实现,子类覆盖父类方法。促进灵活性,如统一处理形状列表。这是OOP的强大特性,简化接口。4.多态介绍classShape:#父类defarea(self):#抽象方法passclassRectangle(Shape):#子类def__init__(self,w,h):self.w,self.h=w,hdefarea(self):returnself.w*self.h#覆盖方法覆盖是子类重新定义父类方法。多态在运行时决定调用哪个版本。核心概念:用于接口一致性,如不同动物发声。5.方法覆盖和多态应用classBird(Animal):defsound(self):print("Chirp")classCat(Animal)::defsound(self):print("Meow")defmake_sound(animal):animal.sound()#多态调用make_sound(Bird())#输出:Chirpstr__返回用户友好字符串,repr__返回开发者表示。在Python中,print调用__str,repr()调用__repr。核心概念:__str__用于显示,__repr__用于调试。6.__str__和__repr__方法#__str__和__repr__classUser:#类def__init__(self,name):#初始化=namedef__str__(self):#用户字符串returnf"User:{}"def__repr__(self):#开发者表示returnf"User({!r})"u=User("Alice")#实例print(u)#输出:User:Alice类方法用@classmethod装饰,接收cls;静态方法@staticmethod无self/cls。在Python中,类方法用于工厂,静态用于工具。核心概念:类方法访问类状态,静态独立。7.类方法和静态方法#类和静态方法classMath:#类@classmethoddeffrom_list(cls,lst):#类方法returncls(sum(lst))@staticmethoddefadd(a,b):#静态方法returna+bprint(Math.add(1,2))#输出:3小结1.继承允许

温馨提示

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

评论

0/150

提交评论