多态及Object类--利用案例轻松学习Java语言配套.ppt_第1页
多态及Object类--利用案例轻松学习Java语言配套.ppt_第2页
多态及Object类--利用案例轻松学习Java语言配套.ppt_第3页
多态及Object类--利用案例轻松学习Java语言配套.ppt_第4页
多态及Object类--利用案例轻松学习Java语言配套.ppt_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

吉首大学软软件服务务外包学院 第十一讲:多态及Object类 清华大学出版社 利用案例轻松学习Java语言(2013年) 配套课件PPT 不足之处请多多指教 吉首大学软软件服务务外包学院 课程导入 (1)利用interface定义接口,利用implements实现接口; (2)子类可以继承一个父类实现多个接口,从而达到多重继 承的目的。 1、已经学习的相关知识 2、思考问题 在图中,同样是吃东西, 但不同的动物吃的东西不同, 本次课讨论Java采用多态机制 来实现不同对象能够选择不同 的行为。 吉首大学软软件服务务外包学院 吉首大学软软件服务务外包学院 11.1 多态的作用 多态是指同一操作作用于不 同的对象,可以有不同的解释, 产生不同的执行结果。 多态态的作用 (1)提高了程序的抽象程度和简洁性; (2)最大程度降低了类和程序模块间的耦合性; (3)提高了类的封闭性,使得它们不需要了解对象的具体 实现细节,就可以很好地共同工作。 吉首大学软软件服务务外包学院 11.2 多态的实现机制 自动动 强制 吉首大学软软件服务务外包学院 11.3 对象向上转型 一个学生对象一定是一个人吗? 一个教师对象一定是一个人吗? 一个子类类的对对象一定是父类类的实实例! 因此可以用父类对类对 象指向子类实类实 例! Person per= new Student() Person per= new Teacher() 吉首大学软软件服务务外包学院 11.3 对象向上转型 程序案例11-1: 对象向上转型 父类类A 定义义子类类B继继承父类类A 定义义子类类C继继承父类类A a1、a2是哪个类类中 的方法? 吉首大学软软件服务务外包学院 11.3 对象向上转型 课堂练习11-1:动物都有需要吃东西,但鸡和猫吃的方法和东西不同, 如鸡采用啄的方法吃米,而猫采用咬的方法吃鱼!结构如下图所示,利 用对象多态完成该模型。 吉首大学软软件服务务外包学院 子类类 子类对类对 象=(子类类)父类实类实 例; 11.4 对象向下转型 一个人对象一定是学生吗? 一个人对象一定是教师吗? 父类对类对 象不一定是子类类的实实例! 必须进须进 行强制转换转换 ! 对象的向下转型必须强制转换 。因为一个父类对象不一定是 某一个子类的实例。 语语法格式11-2 对对象向下转转型 吉首大学软软件服务务外包学院 11.4 对象向下转型 程序案例11-1: 对象向下转型 自动动向上转转型 父类对类对 象是否子 类类的实实例! 把父类对类对 象强制 转换为转换为 子类对类对 象 吉首大学软软件服务务外包学院 11.4 对象向下转型 课堂练习11-2:定义一个方法,该方法的参数是父类的对象,然后测试该 方法接受父类的任意子类对象,并根据不同子类对象调用相应子类的方法 。 吉首大学软软件服务务外包学院 11.5 Object类 (1)Object类是所有Java类的祖先类; (2)如果一个类在声明时没有继承其它类,那么这个类直接 继承Object类。 class Student extends Object class Student 相同 吉首大学软软件服务务外包学院 11.5 Object类 程序案例11-3:覆写toString()方法 默认认是Object的子类类 覆写Object的类类的方法 直接输输出对对象 (不覆写,则则是哈希吗吗) 显显示调调用toString()方法, 与17行结结果一样样 吉首大学软软件服务务外包学院 11.5 Object类 对象比较 比较对象的内容比较对象的地址 std1=std2的值? Student std1=new Student(“奥巴马 ”,55); Student std2=new Student(“奥巴马 ”,55); std1.equals(std2)的值? Std1和std2 的内容一样吗样吗 ? 吉首大学软软件服务务外包学院 11.5 Object类 程序案例11-4: 覆写equals()方法, 用来比较对象的内 容 覆写Object的类类 的equals()方法 当前对对象this与比 较对较对 象std的数据成 员进员进 行比较较 测试测试 equals()方法 吉首大学软软件服务务外包学院 11.5 Object类 Object类是所有类的祖先类,根据对象的多态性,通过自动向上转型实 现接收任意对象。 Object对对象接受 任意实实例 吉首大学软软件服务务外包学院 11.6 课堂小结 2、多态的两种实现方式的原理是什么? 多态是指同一操作作用于不同的对象,可以有不同的解释,产生不同 的执行结果。 1、什么是多态,举例说明? 例如同样是计算面积,对于长方形为长宽,对于圆为r2; (1)向上转型是自动进行的,因为子类的对象一定是父类的实例;通 过子类继承父类,同时实现多个接口来实现多重继承。 (2)向下转型需要强制进行,因为父类的对象不一定是某个子类的实 例,所以需要强制指定子对象的类型。 3、Object类中equals()方法的作用? equals()方法的默认比较的是当前对象和被比较对象的引用,覆写该方 法用来比较两个对象的内容。 吉首大学软软件服务务外包学院 11.7 作业 1、把动物的奔跑定义接口的方法,然后 定义螃蟹、老虎类实现该接口的方法,螃蟹和 老虎的奔跑方式不同,采用对象多态的方式测 试不同动物的奔跑方式。 2、定义一个Dog类,属性有名称、体 重、毛色、种类,方法有吃、玩、睡

温馨提示

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

评论

0/150

提交评论