TP07 深入理解多态 ACCP 6.0 S2-1-深入.NET平台和C#编程 PPT课件.pptVIP

TP07 深入理解多态 ACCP 6.0 S2-1-深入.NET平台和C#编程 PPT课件.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
TP07 深入理解多态 ACCP 6.0 S2-1-深入.NET平台和C#编程 PPT课件

第七章  深入理解多态 里氏替换原则 里氏替换原则的应用 一个鸟类,一个鸵鸟类,如果鸟可以飞,鸵鸟类可以继承鸟类吗? is与as操作符 is 检查对象是否与指定类型兼容 多态的应用2-1 某公司员工回家,可以选择不同交通工具(小汽车、地铁、自行车),每种交通工具具有行驶的行为,编程模拟员工回家的过程 多态的应用2-2 交通工具具有继承关系 GoHome(TrafficTool tool) 父类类型作为参数2-1 实现交通工具继承关系 父类类型作为参数2-2 实现员工回家 小结 实现多态的步骤: 子类重写父类的方法 两种方式 创建父类变量,实例化子类对象 把父类类型作为参数类型,该子类及子类对象作为参数传入 运行时,根据实际创建的对象决定执行哪个方法 指导—实现器乐演奏 训练要点 父类类型作为参数 需求说明 公司举办器乐大赛,员工可以选择不同的乐器进行演奏,模拟演奏过程 难点分析 不同器乐继承自Instrument类 员工具有Play(乐器类型)方法 共性问题集中讲解 为什么需要抽象方法 抽象类和抽象方法 抽象类用来列举一个类所需要的行为 抽象类不明确提供具体实现方法 抽象类必须由其子类实现它的抽象方法(除非子类也具有抽象性) 常见错误 抽象类不能被实例化 实现抽象方法 使用override实现抽象方法 抽象类的实际应用3-1 实现员工执行工作列表、查看工作指标完成情况 抽象类的实际应用3-2 工作类型有很多且执行指标不同 编码、测试、审核…… 抽象类的实际应用3-3 抽象类的应用场合 父类提供一系列规定,约束子类的行为 对比虚方法 抽象类和抽象方法 抽象类通常代表一个抽象的概念 抽象方法约束子类对象的行为 比如:抽象的动物类,具有抽象方法吃()、喝() 虚方法 具体类的默认实现,提供其子类扩展实现方式 比如:数据库连接类,Connect()方法实现与SQL Server的连接,数据库连接子类继承并重写它,实现与MySQL连接 抽象方法与虚方法 面向对象的三大特性 封装 指导—员工执行工作列表 训练要点 抽象类和抽象方法 需求分析 实现员工执行工作列表 编码工作指标项:有效编码行数、遗留问题、工作日 测试工作指标项:测试用例个数、发现的Bug数、工作日 实现思路 搭建窗体 编写Job类 编写Job子类(TestJob、CodeJob),并实现抽象Execute()方法 实现右键“执行”响应事件 练习—查看工作指标完成情况 需求说明 实现员工查看工作指标完成情况 共性问题集中讲解 练习—抽象类实现喂养动物 训练要点 多态 抽象类和抽象方法 需求分析 假设某动物园管理员每天需要给他所负责饲养的狮子、猴子和鸽子喂食。用一个程序模拟喂食过程 饲养员喂养时,不同的动物执行吃的功能 三种不同动物吃的东西不同。饲养员喂养动物时,不能使用判断语句判断动物类型 使用抽象方法实现喂养不同动物的多态,不可以使用方法的重载 共性问题集中讲解 作业 常见调试问题及解决办法 代码规范问题 共性问题集中讲解 完成时间:20分钟 常见调试问题及解决办法 代码规范问题 共性问题集中讲解 总结 实现面向对象的多态性有哪几种方法? 抽象类可以被继承吗? 抽象方法可以有方法体吗? 简述抽象方法和虚方法的区别? 课后作业 必做 老师备课时在此添加内容 选做 老师备课时在此添加内容 提交时间:xxx 提交形式:xxx 预习作业 背诵英文单词 老师备课时在此添加内容 回顾与作业点评 在子类中访问父类成员的关键字是什么? 方法重载和方法重写的区别? 笔记本支持用户使用电池(AcPower)和电源(Battery)两种方式进行供电 使用多态性输出目前笔记本的电源供电情况“XX供电中…” 参考答案 预习检查 子类中定义抽象类的关键字是什么? as关键字的作用? 本章任务 使用OO思想 实现员工器乐演奏 实现员工执行工作列表、查看工作指标完成情况 实现饲养员给不同动物喂食 理解里氏替换原则 会使用父类类型作为参数 理解抽象类和抽象方法 理解虚方法和抽象方法的区别 本章目标 //… SE ai = new SE(); SE joe = new SE(); PM gates = new PM(); ListEmployee empls = new ListEmployee(); empls.Add(ai); empls.Add(joe); empls.Add(gates); //… 子类可以替换父类 里氏替换原则(LSP) 在一个软件系统中,子类对象可以替换所有使用的父类对象,且程序行为没有变化 如果鸵鸟类继承鸟类,违反“鸵鸟会飞” 根据LSP原则:软件设计时,鸵鸟类不能继承鸟类 if(empls[i] is SE) 判断empl集合的元素是否是

文档评论(0)

qiwqpu54 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档