Python编程基础(第3版)(微课版)课件 6.5 类的继承、重写、封装、多态.pptx

Python编程基础(第3版)(微课版)课件 6.5 类的继承、重写、封装、多态.pptx

  1. 1、本文档共17页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

类的继承、重写、封装、多态;;继承(inheritance)是两个类或多个类之间的父子关系,子类继承了父类的所有公有数据属性和方法,并且可以通过编写子类的代码扩充子类的功能。继承实现了数据属性和方法的重用,减少了代码的冗余。

在程序中,继承描述的是事物之间的所属关系。例如,猫和狗都属于动物,在程序中便可以描述为猫和狗继承自动物;同理,波斯猫和巴厘猫都继承自猫,而沙皮狗和斑点狗都继承自狗,如下图。;特定狗种类继承自狗类,狗类继承自动物类,狗类编写了描述所有种类的狗共有的行为和方法,而特定狗种类则增加了狗类特有的行为。

继承也有一定的弊端,例如,某种特定种类的狗不具有绝大部分狗的行为,当程序员没有厘清类间的关系时,可能会使子类具有不该有的方法。如果继承链太长,那么任何一点小的变化都可能会引起一连串变化。因此,使用继承时要注意控制继承链的规模。;在Python中,继承有以下特点。

(1)在继承中,基类初始化方法__init__()不会被自动调用。如果希望子类调用基类的__init__()方法,那么需要在子类的__init__()方法中显式调用基类。

(2)当调用基类的方法时,需要加上基类的类名前缀,且带上self参数变量。注意,在类中调用该类定义的方法时是不需要self参数的。

(3)Python总是先查找对应类的方法,如果在子类中没有对应的方法,那么Python才会在继承链的基类中按顺序查找。

(4)在Python的继承机制中,子类不能访问基类的私有成员。

;1.继承;1.继承;上述代码定义了Bosi类的父类Cat,将猫共有的属性和方法都放到父类中,子类仅需要向父类传输数据属性。这样可以很轻松地定义其他基于Cat类的子类。

在Bosi类的__init__()方法中显式调用了Cat类的__init__()方法,并向父类传输数据,注意这里需要加self参数。

因为在继承中子类不能继承父类的私有属性,所以不用担心父类和子类会出现因继承造成的重名情况。子类不能继承父类的私有属性的代码如下。;1.继承;2.多继承;2.多继承;;所谓重写,就是子类中有一个和父类中名字相同的方法,子类中的方法会覆盖父类中同名的方法,示例代码如下。;封装(encapsulation??就是将抽象得到的数据和行为(或功能)相结合,形成一个有机的整体(即类)。

封装的目的是增强安全性和简化编程,使用者不必了解具体的实现细节,只需通过外部接口和特定的访问权限去使用类即可。简而言之,封装就是将内容存储到某个地方,需要时再去调用。;多态指面向对象程序执行时,相同的信息可能会发送给多个不同类别的对象,系统依据对象所属的类别,引发对应类别的方法而产生不同的行为。

Python是动态语言,可以不检查类型但成功调用实例方法,只要方法存在、属性正确即可实现调用,这是Python语言与静态语言(如Java)最大的差别之一。;;【任务6-4】创建Land_Rover子类

您可能关注的文档

文档评论(0)

lai + 关注
实名认证
内容提供者

精品资料

版权声明书
用户编号:7040145050000060

1亿VIP精品文档

相关文档