《Java程序设计》PPT课件

《Java程序设计》PPT课件

ID:36886689

大小:829.50 KB

页数:28页

时间:2019-05-10

《Java程序设计》PPT课件_第1页
《Java程序设计》PPT课件_第2页
《Java程序设计》PPT课件_第3页
《Java程序设计》PPT课件_第4页
《Java程序设计》PPT课件_第5页
资源描述:

《《Java程序设计》PPT课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第四章(三)多态回顾及作业点评实现继承的关键字是什么?使用继承有什么好处?子类继承父类后,如何调用父类的属性和方法?什么是抽象类?预习检查什么是多态?使用多态有什么好处?本章任务通过多态实现主人给宠物喂食功能通过多态实现主人与宠物玩耍功能通过多态计算汽车租赁的总租金掌握多态的优势和应用场合掌握父类和子类之间的类型转换掌握instanceof运算符的使用使用父类作为方法形参实现多态本章目标为什么使用多态5-1宠物生病了,需要主人给宠物看病不同宠物看病过程不一样不同宠物恢复后体力值不一样打针吃药吃药疗养狗狗Q仔为什么使用多态5-2编写主人类编写给狗狗看病的方法编写给Q仔看病的方法编写

2、测试方法调用主人类给狗狗看病的方法调用主人类给Q仔看病的方法为什么使用多态5-3编码实现publicclassMaster{publicvoidCure(Dogdog){if(dog.getHealth()<50){dog.setHealth(60);System.out.println("打针、吃药");}}publicvoidCure(Penguinpenguin){if(penguin.getHealth()<50)penguin.setHealth(70);System.out.println("吃药、疗养");}}主人类……Mastermaster=newMaster(

3、);master.Cure(dog);master.Cure(penguin);……测试方法为什么使用多态5-4如果又需要给XXX看病,怎么办?添加XXX类,继承Pet类修改Master类,添加给XXX看病的方法使用多态优化设计频繁修改代码,代码可扩展性、可维护性差为什么使用多态5-5使用多态优化后的代码……Petpet=newDog();Mastermaster=newMaster();master.Cure(pet);……测试方法publicclassDogextendsPet{publicvoidtoHospital(){this.setHealth(60);System.

4、out.println("打针、吃药");}}publicclassPenguinextendsPet{publicvoidtoHospital(){this.setHealth(70);System.out.println("吃药、疗养");}}publicclassMaster{publicvoidCure(Petpet){if(pet.getHealth()<50)pet.toHospital();}}主人类Dog类Penguin类1234又要给XXX看病时,只需:1.编写XXX类继承Pet类(旧方案也需要)2.创建XXX类对象(旧方案也需要)3.其他代码不变(不用修改Ma

5、ster类)什么是多态生活中的多态你能列举出一个多态的生活示例吗?程序中的多态多态:同一个引用类型,使用不同的实例而执行不同操作父类引用,子类对象同一种事物,由于条件不同,产生的结果也不同如何实现多态3-1用多态实现打印机分为黑白打印机和彩色打印机不同类型的打印机打印效果不同黑白打印机彩色打印机打印如何实现多态3-2使用多态实现思路编写父类编写子类,子类重写父类方法运行时,使用父类的类型,子类的对象计算机可以连接各种打印机无论连接何种打印机打印方法都相同根据连接打印机不同,效果也不同如何实现多态3-3编码实现实现多态的两个要素:1.方法重写2.使用父类类型abstractclas

6、sPrinter(){print(Stringstr);}classColorPrinter(){print(Stringstr){System.out.println("输出彩色的"+str);}}classBlackPrinter(){print(Stringstr){System.out.println("输出黑白的"+str);}}publicstaticvoidmain(String[]args){Printerp=newColorPrinter();p.print();p=newBlackPrinter();p.print();}父类子类运行同一种操作方式,不同的操作

7、对象只能调用父类已经定义的方法方法重写方法重写的规则在继承关系的子类中重写的方法名、参数、返回值类型必须与父类相同私有方法不能继承因而也无法重写位置方法名参数表返回值访问修饰符方法重写子类相同相同相同不能比父类更严格方法重载同类相同相同无关无关方法重写方法重载VSinstanceof运算符该运算符用来判断一个对象是否属于一个类或者实现了一个接口,结果为true或false在强制类型转换之前通过instanceof运算符检查对象的真实类型,可以避免类型转换异常,从而提高代码健壮性对

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。