《Java程序设计》PPT课件.ppt

上传人:sh****n 文档编号:6610975 上传时间:2020-02-29 格式:PPT 页数:28 大小:829.55KB
返回 下载 相关 举报
《Java程序设计》PPT课件.ppt_第1页
第1页 / 共28页
《Java程序设计》PPT课件.ppt_第2页
第2页 / 共28页
《Java程序设计》PPT课件.ppt_第3页
第3页 / 共28页
点击查看更多>>
资源描述
第四章 三 多态 回顾及作业点评 实现继承的关键字是什么 使用继承有什么好处 子类继承父类后 如何调用父类的属性和方法 什么是抽象类 预习检查 什么是多态 使用多态有什么好处 本章任务 通过多态实现主人给宠物喂食功能通过多态实现主人与宠物玩耍功能通过多态计算汽车租赁的总租金 掌握多态的优势和应用场合掌握父类和子类之间的类型转换掌握instanceof运算符的使用使用父类作为方法形参实现多态 本章目标 为什么使用多态5 1 宠物生病了 需要主人给宠物看病不同宠物看病过程不一样不同宠物恢复后体力值不一样 打针 吃药 吃药 疗养 狗狗 Q仔 为什么使用多态5 2 编写主人类编写给狗狗看病的方法编写给Q仔看病的方法编写测试方法调用主人类给狗狗看病的方法调用主人类给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 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 out println 打针 吃药 publicclassPenguinextendsPet publicvoidtoHospital this setHealth 70 System out println 吃药 疗养 publicclassMaster publicvoidCure 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 String args Printerp newColorPrinter p print p newBlackPrinter p print 父类 子类 运行 同一种操作方式 不同的操作对象 只能调用父类已经定义的方法 方法重写 方法重写的规则在继承关系的子类中重写的方法名 参数 返回值类型必须与父类相同私有方法不能继承因而也无法重写 方法重写 方法重载 VS instanceof运算符 该运算符用来判断一个对象是否属于一个类或者实现了一个接口 结果为true或false在强制类型转换之前通过instanceof运算符检查对象的真实类型 可以避免类型转换异常 从而提高代码健壮性 对象instanceof类或接口 测试instanceof运算符的使用 author北大青鸟 publicclassTestPoly2 publicstaticvoidmain String args Petpet newPenguin 楠楠 Q妹 Petpet newDog 欧欧 雪娜瑞 pet eat if petinstanceofDog Dogdog Dog pet dog catchingFlyDisc elseif petinstanceofPenguin Penguinpgn Penguin pet pgn swimming 测试instanceof运算符的使用 author北大青鸟 publicclassTestPoly2 publicstaticvoidmain String args 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类型作为参数运行时 调用喂养方法时 传递一个子类的对象 publicclassPet protectedabstractvoideat publicPetfeed Petpet pet eat publicclassDogextendsPet publicvoideat 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分钟 MotoVehile motos newMotoVehile 4 motos 0 newCar 宝马550i 京NY28588 motos 1 newCar 宝马550i 京NNN328 motos 2 newCar 别克林荫大道 京NY28588 motos 3 newBus 金龙 34 1 创建车的对象 放在数组中 CalcTotalRent MotoVehile motos doubletotalRent 0 0D for inti 0 i motos length i totalRent motos i CalRent 5 returntotalRent 2 循环调用CalcRent方法 计算总租金 小结 为什么可以实现这样的效果 再次理解什么是多态 再次理解多态有什么好处 指导 购置新车2 1 训练要点 使用父类作为方法形参实现多态使用多态增强系统的扩展性和可维护性需求说明 新购置了卡车 根据吨位 租金每吨每天50对系统进行扩展 计算汽车租赁的总租金 讲解需求说明 指导 购置新车2 2 实现思路 完成时间 30分钟 1 创建卡车类 实现CalcRent 2 修改统计租金代码 提前做完的同学可以尝试改进系统 1 循环从控制台选择汽车种类2 从控制台输入天数3 累加计算总租金 共性问题集中讲解 常见调试问题及解决办法代码规范问题 共性问题集中讲解 总结 什么是多态 为什么需要多态 什么地方使用多态
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!