电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

深入理解多态VIP免费

深入理解多态_第1页
1/33
深入理解多态_第2页
2/33
深入理解多态_第3页
3/33
第五单元(四)第五单元(四)深入理解多态深入理解多态回顾与作业点评在子类中访问父类成员的关键字是什么?方法重载和方法重写的区别?笔记本支持用户使用电池(AcPower)和电源(Battery)两种方式进行供电使用多态性输出目前笔记本的电源供电情况“XX供电中…”参考答案预习检查子类中定义抽象类的关键字是什么?as关键字的作用?本章任务使用OO思想实现员工器乐演奏实现员工执行工作列表、查看工作指标完成情况实现饲养员给不同动物喂食理解里氏替换原则会使用父类类型作为参数理解抽象类和抽象方法理解虚方法和抽象方法的区别本章目标里氏替换原则//…SEai=newSE();SEjoe=newSE();PMgates=newPM();Listempls=newList();empls.Add(ai);empls.Add(joe);empls.Add(gates);//…子类可以替换父类子类可以替换父类里氏替换原则(LSP)在一个软件系统中,子类对象可以替换所有使用的父类对象,且程序行为没有变化里氏替换原则的应用一个鸟类,一个鸵鸟类,如果鸟可以飞,鸵鸟类可以继承鸟类吗?如果鸵鸟类继承鸟类,违反“鸵鸟会飞”如果鸵鸟类继承鸟类,违反“鸵鸟会飞”根据LSP原则:软件设计时,鸵鸟类不能继承鸟类根据LSP原则:软件设计时,鸵鸟类不能继承鸟类is与as操作符is检查对象是否与指定类型兼容if(empls[i]isSE)判断empl集合的元素是否是SE对象判断empl集合的元素是否是SE对象as用于在兼容的引用类型之间执行转换for(inti=0;iempls=newList();empls.Add(ai);empls.Add(joe);//员工选择不同交通工具回家empls[0].GoHome(newBicycle());empls[1].GoHome(newTube());父类作为参数使用,可接受多种子类类型父类作为参数使用,可接受多种子类类型传递实际创建的子类对象,tool.Run()执行相应子类的Run()传递实际创建的子类对象,tool.Run()执行相应子类的Run()小结实现多态的步骤:子类重写父类的方法两种方式创建父类变量,实例化子类对象把父类类型作为参数类型,该子类及子类对象作为参数传入运行时,根据实际创建的对象决定执行哪个方法指导—实现器乐演奏训练要点父类类型作为参数需求说明公司举办器乐大赛,员工可以选择不同的乐器进行演奏,模拟演奏过程难点分析不同器乐继承自Instrument类员工具有Play(乐器类型)方法publicvoidPlay(InstrumentXX){XX.Play();}支持传入多种子类对象,避免为每一个子类类型编写方法支持传入多种子类对象,避免为每一个子类类型编写方法完成时间:25分钟完成时间:25分钟共性问题集中讲解常见调试问题及解决办法代码规范问题共性问题集中讲解共性问题集中讲解为什么需要抽象方法publicclassTrafficTool{publicvirtualvoidRun(){Console.WriteLine("车在行使!");}}交通工具类是抽象的概念,根本不可能实例化,Run()方法不具有实际意义!交通工具类是抽象的概念,根本不可能实例化,Run()方法不具有实际意义!publicabstractclassTrafficTool{publicabstractvoidRun();}使用抽象类、抽象方法优化程序使用抽象类、抽象方法优化程序publicabstractclassTrafficTool{publicabstractvoidRun();}抽象类和抽象方法抽象方法抽象方法一个没有实现的方法一个没有实现的方法有抽象方法的类必然是抽象类有...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

深入理解多态

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部