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

下载本文档

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

文档简介

1、吉首大学软件服务外包学院吉首大学软件服务外包学院第十一讲:多态及第十一讲:多态及Object类类清华大学出版社清华大学出版社利用案例轻松学习利用案例轻松学习Java语言语言(2013年)年) 配套课件配套课件PPT不足之处请多多指教不足之处请多多指教吉首大学软件服务外包学院吉首大学软件服务外包学院课程导入课程导入(1)利用interface定义接口,利用implements实现接口;(2)子类可以继承一个父类实现多个接口,从而达到多重继承的目的。1、已经学习的相关知识、已经学习的相关知识2、思考问题、思考问题在图中,同样是吃东西,但不同的动物吃的东西不同,本次课讨论本次课讨论Java采用多态机

2、制采用多态机制来实现不同对象能够选择不同来实现不同对象能够选择不同的行为。的行为。吉首大学软件服务外包学院吉首大学软件服务外包学院吉首大学软件服务外包学院吉首大学软件服务外包学院11.1 11.1 多态的作用多态的作用多态多态是指同一操作作用于不不同的对象同的对象,可以有不同的解释不同的解释,产生不同的执行结果不同的执行结果。多态的作用多态的作用(1)提高提高了程序的抽象程度和简洁性抽象程度和简洁性;(2)最大程度降低降低了类和程序模块间的耦合性耦合性;(3)提高提高了类的封闭性封闭性,使得它们不需要了解对象的具体实现细节,就可以很好地共同工作。多态及Object类-利用案例轻松学习Java语

3、言配套吉首大学软件服务外包学院吉首大学软件服务外包学院11.2 11.2 多态的实现机制多态的实现机制自动自动强制强制多态及Object类-利用案例轻松学习Java语言配套吉首大学软件服务外包学院吉首大学软件服务外包学院11.3 11.3 对象向上转型对象向上转型一个学生对象一定是一个人吗?一个教师对象一定是一个人吗?一个子类的对象一定是父类的实例!一个子类的对象一定是父类的实例!因此可以用父类对象指向子类实例!因此可以用父类对象指向子类实例!Person per= new Student()Person per= new Teacher()多态及Object类-利用案例轻松学习Java语言配

4、套吉首大学软件服务外包学院吉首大学软件服务外包学院11.3 11.3 对象向上转型对象向上转型程序案例程序案例11-111-1:对象向上转型父类父类A定义子类定义子类B继承父类继承父类A定义子类定义子类C继承父类继承父类Aa1、a2是哪个类中是哪个类中的方法?的方法?多态及Object类-利用案例轻松学习Java语言配套吉首大学软件服务外包学院吉首大学软件服务外包学院11.3 11.3 对象向上转型对象向上转型课堂练习课堂练习11-111-1:动物都有需要吃东西,但鸡和猫吃的方法和东西不同,如鸡采用啄的方法吃米,而猫采用咬的方法吃鱼!结构如下图所示,利用对象多态完成该模型。多态及Object类

5、-利用案例轻松学习Java语言配套吉首大学软件服务外包学院吉首大学软件服务外包学院子类子类 子类对象子类对象=(子类)父类实例(子类)父类实例;11.4 11.4 对象向下转型对象向下转型一个人对象一定是学生吗?一个人对象一定是教师吗?父类对象不一定是子类的实例!父类对象不一定是子类的实例!必须进行强制转换!必须进行强制转换!对象的向下转型必须强制转换。因为一个父类对象不一定是某一个子类的实例。语法格式语法格式11-2 对象向下转型对象向下转型多态及Object类-利用案例轻松学习Java语言配套吉首大学软件服务外包学院吉首大学软件服务外包学院11.4 11.4 对象向下转型对象向下转型程序案

6、例程序案例11-111-1:对象向下转型自动向上转型自动向上转型父类对象是否子父类对象是否子类的实例!类的实例!把父类对象强制把父类对象强制转换为子类对象转换为子类对象多态及Object类-利用案例轻松学习Java语言配套吉首大学软件服务外包学院吉首大学软件服务外包学院11.4 11.4 对象向下转型对象向下转型课堂练习课堂练习11-211-2:定义一个方法,该方法的参数是父类的对象,然后测试该方法接受父类的任意子类对象,并根据不同子类对象调用相应子类的方法。多态及Object类-利用案例轻松学习Java语言配套吉首大学软件服务外包学院吉首大学软件服务外包学院11.5 Object11.5 O

7、bject类类(1)Object类是所有Java类的祖先类祖先类;(2)如果一个类在声明时没有继承其它类,那么这个类直接直接继承继承Object类类。class Student extends Objectclass Student相同相同多态及Object类-利用案例轻松学习Java语言配套吉首大学软件服务外包学院吉首大学软件服务外包学院11.5 Object11.5 Object类类程序案例程序案例11-311-3:覆写toString()方法默认是默认是Object的子类的子类覆写覆写Object的类的方法的类的方法直接输出对象直接输出对象(不覆写,则是哈希吗)不覆写,则是哈希吗)显示调

8、用显示调用toString()方法,方法,与与17行结果一样行结果一样多态及Object类-利用案例轻松学习Java语言配套吉首大学软件服务外包学院吉首大学软件服务外包学院11.5 Object11.5 Object类类对象比较对象比较比较对象的内容比较对象的内容比较对象的地址比较对象的地址std1=std2的值?Student std1=new Student(“奥巴马”,55);Student std2=new Student(“奥巴马”,55);std1.equals(std2)的值?Std1和和std2的内容一样吗?的内容一样吗?多态及Object类-利用案例轻松学习Java语言配套吉

9、首大学软件服务外包学院吉首大学软件服务外包学院11.5 Object11.5 Object类类程序案例程序案例11-411-4:覆写equals()方法,用来比较对象的内容覆写覆写Object的类的类的的equals()方法方法当前对象当前对象this与比与比较对象较对象std的数据成的数据成员进行比较员进行比较测试测试equals()方法方法多态及Object类-利用案例轻松学习Java语言配套吉首大学软件服务外包学院吉首大学软件服务外包学院11.5 Object11.5 Object类类Object类是所有类的祖先类,根据对象的多态性多态性,通过自动向上转型自动向上转型实现接收任意对象接收

10、任意对象。Object对象接受对象接受任意实例任意实例多态及Object类-利用案例轻松学习Java语言配套吉首大学软件服务外包学院吉首大学软件服务外包学院11.6 11.6 课堂小结课堂小结2 2、多态的两种实现方式的原理是什么?、多态的两种实现方式的原理是什么?多态多态是指同一操作作用于不同的对象不同的对象,可以有不同的解释不同的解释,产生不同不同的执行结果的执行结果。1 1、什么是多态,举例说明?、什么是多态,举例说明?例如同样是计算面积,对于长方形为长宽,对于圆为r2;(1)向上转型是自动进行的,因为子类的对象一定是父类的实例;通过子类继承父类,同时实现多个接口来实现多重继承。(2)向

11、下转型需要强制进行,因为父类的对象不一定是某个子类的实例,所以需要强制指定子对象的类型。3 3、ObjectObject类中类中equals()equals()方法的作用?方法的作用?equals()方法的默认比较的是当前对象和被比较对象的引用,覆写该方法用来比较两个对象的内容。多态及Object类-利用案例轻松学习Java语言配套吉首大学软件服务外包学院吉首大学软件服务外包学院11.7 11.7 作业作业1、把动物的奔跑定义接口的方法,然后定义螃蟹、老虎螃蟹、老虎类实现该接口的方法,螃蟹和老虎的奔跑方式不同,采用对象多态的方式测试不同动物的奔跑方式。2、定义一个Dog类,属性有名称、体重、毛色、种类,方法有吃、玩、睡和吠,覆写toString()方法直接返回狗的属性信息,覆写equ

温馨提示

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

评论

0/150

提交评论