011--多态及Object类--利用案例轻松学习Java语言配套PPT课件.ppt

上传人:本田雅阁 文档编号:2028691 上传时间:2019-02-06 格式:PPT 页数:19 大小:3.39MB
返回 下载 相关 举报
011--多态及Object类--利用案例轻松学习Java语言配套PPT课件.ppt_第1页
第1页 / 共19页
011--多态及Object类--利用案例轻松学习Java语言配套PPT课件.ppt_第2页
第2页 / 共19页
011--多态及Object类--利用案例轻松学习Java语言配套PPT课件.ppt_第3页
第3页 / 共19页
亲,该文档总共19页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《011--多态及Object类--利用案例轻松学习Java语言配套PPT课件.ppt》由会员分享,可在线阅读,更多相关《011--多态及Object类--利用案例轻松学习Java语言配套PPT课件.ppt(19页珍藏版)》请在三一文库上搜索。

1、第十一讲:多态及Object类,清华大学出版社 利用案例轻松学习Java语言(2013年) 配套课件PPT 不足之处请多多指教,课程导入,(1)利用interface定义接口,利用implements实现接口;,(2)子类可以继承一个父类实现多个接口,从而达到多重继承的目的。,1、已经学习的相关知识,2、思考问题,在图中,同样是吃东西,但不同的动物吃的东西不同,本次课讨论Java采用多态机制来实现不同对象能够选择不同的行为。,11.1 多态的作用,多态是指同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果。,多态的作用,(1)提高了程序的抽象程度和简洁性;,(2)最大程度降低了类和

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:动物都有需要吃东

3、西,但鸡和猫吃的方法和东西不同,如鸡采用啄的方法吃米,而猫采用咬的方法吃鱼!结构如下图所示,利用对象多态完成该模型。,子类 子类对象=(子类)父类实例;,11.4 对象向下转型,一个人对象一定是学生吗?,一个人对象一定是教师吗?,父类对象不一定是子类的实例! 必须进行强制转换!,对象的向下转型必须强制转换。因为一个父类对象不一定是某一个子类的实例。,语法格式11-2 对象向下转型,11.4 对象向下转型,程序案例11-1: 对象向下转型,自动向上转型,父类对象是否子类的实例!,把父类对象强制转换为子类对象,11.4 对象向下转型,课堂练习11-2:定义一个方法,该方法的参数是父类的对象,然后测

4、试该方法接受父类的任意子类对象,并根据不同子类对象调用相应子类的方法。,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的值?,Stu

5、dent 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、多

6、态的两种实现方式的原理是什么?,多态是指同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果。,1、什么是多态,举例说明?,例如同样是计算面积,对于长方形为长宽,对于圆为r2;,(1)向上转型是自动进行的,因为子类的对象一定是父类的实例;通过子类继承父类,同时实现多个接口来实现多重继承。,(2)向下转型需要强制进行,因为父类的对象不一定是某个子类的实例,所以需要强制指定子对象的类型。,3、Object类中equals()方法的作用?,equals()方法的默认比较的是当前对象和被比较对象的引用,覆写该方法用来比较两个对象的内容。,11.7 作业,1、把动物的奔跑定义接口的方法,然后定义螃蟹、老虎类实现该接口的方法,螃蟹和老虎的奔跑方式不同,采用对象多态的方式测试不同动物的奔跑方式。,2、定义一个Dog类,属性有名称、体重、毛色、种类,方法有吃、玩、睡和吠,覆写toString()方法直接返回狗的属性信息,覆写equals()方法能够比较两只狗是否完全相同。,清华大学出版社 利用案例轻松学习Java语言(2013年) 配套课件PPT 不足之处请多多指教,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1