第5章面向对象特性-(精品课件).pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第五章 面向对象特性 主要内容: 1.类的继承 2.类的多态 3.接口 4.包 教学目的和要求: 理解继承和复用的概念 理解父类和子类 掌握扩展类编程 理解多态性是如何扩充和维护系统性能 掌握如何建立包和接口 教学重点与难点 重点: 类的封装中的权限; 包、接口的使用; 类的继承的概念和实现 难点: 类多态中的方法重载和覆盖 学习导读 本章讨论面向对象的编程(OOP)及其关键特性:继承和多态、接口、包。 继承性是软件复用的一种形式,对降低软件复杂性行之有效。继承性同时是面向对象程序设计语言的特点,采用对象但没有继承性的语言是基于对象的语言,但不是面向对象的语言,这是两者的区别。 多态性允许以统一的风格处理已存在的变量及相关的类,使增加系统中新功能变得容易。 目 录 5.1 抽象与封装 5.2 继承的概念 5.3 多态与动态绑定 5.4 初始化与构造方法 5.5 包 5.6 接口 5.7 小结 5.1 抽象与封装 例子 1、如何用面向对象的方法实现抽象? 2、对象的封装 一个对象的变量(状态)构成这个对象的核心,一般不将其对外公布,而是将对变量进行操作的方法对外公开,这样变量就被隐藏起来。 这种将对象的变量置于其方法的保护之下的方式称为封装。 例如:可以把汽车抽象成一个对象,用变量表示它当前的状态,如速度、油量、所处的位置等,它的行为则可以有加速、刹车、换档等。我们在驾驶汽车时,只需要知道如何操作相应的方法就可以了,不用考虑汽车内部是如何实现诸如提速、刹车等行为。 3、实现抽象和封装 ——类和对象 一个对象包含了若干个成员变量和成员方法,它是现实世界中特定实体在程序中的具体体现。 成员变量反映实体的属性状态,成员方法反映实体具有的行为能力,这些内容的规格描述将由类承担,类是对具有类似特征的对象的抽象说明,对象是类的实例。 封装的例子---直线类 5. 2 继承的概念 子类不能继承父类中的private成员,除此之外,其它所有的成员都可以通过继承变为子类的成员。 另一方面,对继承的理解应该扩展到整个父类的分支,也就是说,子类继承的成员实际上是整个父系的所有成员。 例如,toString这个方法是在Object中声明的,被层层继承了下来,用于输出当前对象的基本信息。 子类执行自己的方法时,操作的是子类的成员变量,子类执行父类的方法时,操作的是父类的成员变量。 在子类中要特别注意成员变量的命名,防止无意中隐藏了父类的关键成员变量,这有可能给你的程序带来麻烦。 构造方法重载 结 论 子类只能有一个父类。如果省略了extends,子类的父类是Object。子类继承了父类和祖先的成员,可以使用这些成员。在需要的时候,子类可以添加新的成员变量和方法,也可以隐藏父类的成员变量或覆盖父类的成员方法。 5.3 多态与动态绑定 5.3.1 多态的定义 对象的多态性是指在父类中定义的属性或行为被子类继承之后,可以具有不同的数据类型或表现出不同的行为。 例如:“几何图形”类的“绘图”方法,“椭圆”和“多边形”都是“几何图形”的子类,其“绘图”方法的功能却不同。 5.3.1 多态的定义 在Java中,多态性体现在两个方面:由方法重载实现的静态多态(编译时多态)和方法重写实现的动态多态(运行时多态)。 1.静态多态。在编译阶段,具体调用哪个被重载的方法,编译器会根据参数的不同来确定调用相应的方法。 2.动态多态。由于子类继承了父类所有的属性(私有的除外),所以子类对象可以作为父类对象使用。程序中凡是使用父类对象的地方,都可以用子类对象代替。一个父类对象变量可以通过引用子类的对象来调用子类中重写的方法。 5.3.2 动态多态 动态多态是通过父类与子类之间方法的重写来实现。在父类中定义的方法可以有方法体,也可以没有(称为抽象方法),在子类中对父类中的方法体进行重写的过程就是动态多态的实现。 关于动态多态的例子有很多,例如我们可以把前面关于方法重写的例子做稍微的修改。 5.3.2 动态多态 重写方法的调用原则。 Java运行时系统根据调用该方法的对象类型,来决 定调用哪个方法。对于子类的一个对象,如果子类 重写了父类的方法,则运行时系统调用子类的方 法;如果子类继承了父类的方法(未重写),则运 行时系统调用父类的方法。 5.3.2 动态多态 重写方法的原则:重写后的方法不能比被重写的方法有更严格的访问权限(可以相同)。 假设父类中有一个访问权限为public的方法 display()。如果在子类中要重写该方法,则该方法的访问权限必须为public。如果父类中的display()方法的访问权限为protected,那么在子类中重写该方法时,该方法的访问权限必须为protected或public

文档评论(0)

夏天 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档