Java程序设计.ppt
- 文档编号:1380116
- 上传时间:2022-10-21
- 格式:PPT
- 页数:28
- 大小:625.50KB
Java程序设计.ppt
《Java程序设计.ppt》由会员分享,可在线阅读,更多相关《Java程序设计.ppt(28页珍藏版)》请在冰豆网上搜索。
第四章,(三)多态,回顾及作业点评,实现继承的关键字是什么?
使用继承有什么好处?
子类继承父类后,如何调用父类的属性和方法?
什么是抽象类?
预习检查,什么是多态?
使用多态有什么好处?
本章任务,通过多态实现主人给宠物喂食功能通过多态实现主人与宠物玩耍功能通过多态计算汽车租赁的总租金,掌握多态的优势和应用场合掌握父类和子类之间的类型转换掌握instanceof运算符的使用使用父类作为方法形参实现多态,本章目标,为什么使用多态5-1,宠物生病了,需要主人给宠物看病不同宠物看病过程不一样不同宠物恢复后体力值不一样,打针,吃药,吃药,疗养,狗狗,Q仔,为什么使用多态5-2,编写主人类编写给狗狗看病的方法编写给Q仔看病的方法编写测试方法调用主人类给狗狗看病的方法调用主人类给Q仔看病的方法,为什么使用多态5-3,编码实现,publicclassMasterpublicvoidCure(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();master.Cure(dog);master.Cure(penguin);,测试方法,为什么使用多态5-4,如果又需要给XXX看病,怎么办?
添加XXX类,继承Pet类修改Master类,添加给XXX看病的方法,使用多态优化设计,频繁修改代码,代码可扩展性、可维护性差,为什么使用多态5-5,使用多态优化后的代码,Petpet=newDog();Mastermaster=newMaster();master.Cure(pet);,测试方法,publicclassDogextendsPetpublicvoidtoHospital()this.setHealth(60);System.out.println(打针、吃药);,publicclassPenguinextendsPetpublicvoidtoHospital()this.setHealth(70);System.out.println(吃药、疗养);,publicclassMasterpublicvoidCure(Petpet)if(pet.getHealth()50)pet.toHospital();,主人类,Dog类,Penguin类,1,2,3,4,又要给XXX看病时,只需:
1.编写XXX类继承Pet类(旧方案也需要)2.创建XXX类对象(旧方案也需要)3.其他代码不变(不用修改Master类),什么是多态,生活中的多态你能列举出一个多态的生活示例吗?
程序中的多态,多态:
同一个引用类型,使用不同的实例而执行不同操作,父类引用,子类对象,同一种事物,由于条件不同,产生的结果也不同,如何实现多态3-1,用多态实现打印机分为黑白打印机和彩色打印机不同类型的打印机打印效果不同,黑白打印机,彩色打印机,打印,如何实现多态3-2,使用多态实现思路编写父类编写子类,子类重写父类方法运行时,使用父类的类型,子类的对象,计算机可以连接各种打印机,无论连接何种打印机打印方法都相同,根据连接打印机不同,效果也不同,如何实现多态3-3,编码实现,实现多态的两个要素:
1.方法重写2.使用父类类型,abstractclassPrinter()print(Stringstr);,classColorPrinter()print(Stringstr)System.out.println(输出彩色的+str);,classBlackPrinter()print(Stringstr)System.out.println(输出黑白的+str);,publicstaticvoidmain(Stringargs)Printerp=newColorPrinter();p.print();p=newBlackPrinter();p.print();,父类,子类,运行,同一种操作方式,不同的操作对象,只能调用父类已经定义的方法,方法重写,方法重写的规则在继承关系的子类中重写的方法名、参数、返回值类型必须与父类相同私有方法不能继承因而也无法重写,方法重写,方法重载,VS,instanceof运算符,该运算符用来判断一个对象是否属于一个类或者实现了一个接口,结果为true或false在强制类型转换之前通过instanceof运算符检查对象的真实类型,可以避免类型转换异常,从而提高代码健壮性,对象instanceof类或接口,/*测试instanceof运算符的使用。
*author北大青鸟*/publicclassTestPoly2publicstaticvoidmain(Stringargs)Petpet=newPenguin(楠楠,Q妹);/Petpet=newDog(欧欧,雪娜瑞);pet.eat();if(petinstanceofDog)Dogdog=(Dog)pet;dog.catchingFlyDisc();elseif(petinstanceofPenguin)Penguinpgn=(Penguin)pet;pgn.swimming();,/*测试instanceof运算符的使用。
*author北大青鸟*/publicclassTestPoly2publicstaticvoidmain(Stringargs)/Petpet=newPenguin(楠楠,Q妹);Petpet=newDog(欧欧,雪娜瑞);pet.eat();if(petinstanceofDog)Dogdog=(Dog)pet;dog.catchingFlyDisc();elseif(petinstanceofPenguin)Penguinpgn=(Penguin)pet;pgn.swimming();,注释创建Penguin对象语句,取消创建Dog对象语句的注释,指导实现喂养宠物功能2-1,训练要点:
子类到父类的自动类型转换使用父类作为方法形参实现多态多态可以减少代码量,可以提高代码的可扩展性和可维护性需求说明:
实现喂养宠物功能不同宠物吃的东西不同主人可以喂养不同类型宠物,讲解需求说明,指导实现喂养宠物功能2-2,实现思路:
在Pet类添加吃饭的抽象方法子类实现吃饭方法Master类编写喂养方法,使用Pet类型作为参数运行时,调用喂养方法时,传递一个子类的对象,publicclassPetprotectedabstractvoideat();,publicPetfeed(Petpet)pet.eat();,publicclassDogextendsPetpublicvoideat()super.health=super.health+3;,Pet类,Dog类,Master类,完成时间:
25分钟,练习实现与宠物玩耍功能,需求说明:
主人和狗狗玩接飞盘游戏,狗狗健康值减少10,与主人亲密度增加5主人和企鹅玩游泳游戏,企鹅健康值减少10,与主人亲密度增加5提示:
Dog类添加catchingFlyDisc()方法,实现接飞盘功能Penguin类添加swimming()方法,实现游泳功能主人添加play(Petpet)方法如果pet代表Dog就玩接飞盘游戏如果pet代表Penguin就玩游泳游戏,完成时间:
25分钟,小结,什么是多态?
使用的多态有什么好处?
共性问题集中讲解,常见调试问题及解决办法代码规范问题,共性问题集中讲解,指导计算总租金2-1,训练要点:
多态的使用使用父类类型作为方法参数需求说明:
在前面汽车租赁系统的基础上,实现计算多种车辆总租金的功能现在有客户租用:
2辆宝马1辆别克商务舱1辆金龙(34)座租5天共多少租金?
讲解需求说明,指导计算总租金2-2,实现思路:
完成时间:
35分钟,MotoVehilemotos=newMotoVehile4;motos0=newCar(宝马550i,京NY28588);motos1=newCar(宝马550i,京NNN328);motos2=newCar(别克林荫大道,京NY28588);motos3=newBus(金龙,34);,1、创建车的对象,放在数组中,CalcTotalRent(MotoVehilemotos)doubletotalRent=0.0D;for(inti=0;imotos.length;+i)totalRent+=motosi.CalRent(5);returntotalRent;,2、循环调用CalcRent方法,计算总租金,小结,为什么可以实现这样的效果?
再次理解什么是多态?
再次理解多态有什么好处?
指导购置新车2-1,训练要点:
使用父类作为方法形参实现多态使用多态增强系统的扩展性和可维护性需求说明:
新购置了卡车,根据吨位,租金每吨每天50对系统进行扩展,计算汽车租赁的总租金,讲解需求说明,指导购置新车2-2,实现思路,完成时间:
30分钟,1、创建卡车类,实现CalcRent,2、修改统计租金代码,提前做完的同学可以尝试改进系统:
1.循环从控制台选择汽车种类2.从控制台输入天数3.累加计算总租金,共性问题集中讲解,常见调试问题及解决办法代码规范问题,共性问题集中讲解,总结,什么是多态?
为什么需要多态?
什么地方使用多态?
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 程序设计
![提示](https://static.bdocx.com/images/bang_tan.gif)