初识继承和多态第五章.pptVIP

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

第五章  初识继承和多态 代码冗余 对比两个类PM、SE 加入CEO类,具有这些相同的属性 提取冗余代码 提取后的应用 生活中的继承 继承概述2-1 继承: 在 C# 中,类可以继承自另一个类。衍生的类(子类)继承父类的方法和数据成员 子类继承父类,父类派生子类 父类又叫基类 子类又叫派生类 继承概述2-2 继承是面向对象的一个重要特性 继承指出两个类是“A 是 B”关系 继承的实际应用3-1 部门所有人都自我介绍SayHi() 继承的实际应用3-2 SE类和PM类都继承Employee父类 子类构造函数设置公共属性和特有属性 继承的实际应用3-3 子类特有的SayHi()方法 实例化对象调用SayHi() base调用父类成员 关键字base的作用 调用父类的属性和方法 protected访问修饰符 如何让父类中的某个成员只允许其子类访问 揭秘子类构造函数 构造子类对象,父类做了什么? base关键字:显示调用父类构造函数 常见错误2-1 常见错误2-2 指导—模拟汽车行驶 训练要点 继承 base关键字 需求说明 控制台程序实现汽车与卡车的继承 汽车类Vehicle有VehicleRun ()方法, 输出“汽车在行驶!” 卡车类Truck有TruckRun()方法,输出“型号为XX、产地为XX的卡车在行驶!” 实例化一个卡车调用汽车和卡车的方法 指导—模拟汽车行驶 实现思路 创建Vehicle,并添加属性“类型”和“产地”以及构造函数 Vehicle类添加方法VehicleRun() 创建Truck类继承Vehicle,添加构造函数 Truck类添加方法TruckRun() 编写测试方法 继承的传递性 继承的传递性 添加一个微型卡车类 继承单根性 软件开发中继承的妙处 模拟现实世界的关系 便于重用和扩展已彻底测试的代码,且无需修改 结构更清晰 IS-A的应用 实现多个员工逐个问好(包括SE和PM) 指导—实现工作汇报 训练要点 继承 构造函数 IS-A 需求说明 PM类和SE类均继承Employee,公共属性在父类构造函数中初始化 实现不同员工汇报工作方法DoWork() SE通过遍历工作项,输出工作信息 PM输出固定工作信息 指导—实现工作汇报 难点分析 Job类定义工作项 SE和PM继承员工类 DoWork()方法是子类特有的方法 扩展的麻烦 添加对象后遍历泛型集合 巧妙减少判断冗余 修改Employee类 修改子类SayHi()方法 去除子类类型判断 生活中的多态 什么是多态 多态:指两个或多个属于不同类的对象,对同一个消息(方法调用)作出不同响应的能力 同一个类在不同场合下表现出不同的行为特征 重写虚方法实现多态2-1 方法重写:子类重写父类方法 重写虚方法实现多态2-2 方法调用: 练习—多态实现工作汇报 需求说明 去除冗余的判断,实现不同员工汇报工作 共性问题集中讲解 指导—计算器 训练要点 理解多态 虚方法 方法重写 需求分析 使用多态实现计算机器 指导—计算器 实现思路 创建父类Operation 属性NumberA和NumberB 虚方法GetResult() 依次创建子类OpeartionAdd等,继承父类并重写虚方法GetResult() 实现计算响应事件 根据不同运算符,创建不同子类对象 初始化运算数并执行计算 Cut….!!! 听到这个声音他们会做什么? 剪断头发 切开皮肤 停止表演 不同对象对于同一个方法(Cut)实现不同的行为 理发师 外科医生 演员 PM对象和SE对象SayHi()的内容不同 Employee SE PM Employee类,在这两种场合的行为不同 public class Employee { public virtual string SayHi() { string message = string.Format(大家好!); return message; } } public class SE:Employee { public override string SayHi() {……} } 重写 方法名、参数列表、返回值一样,提供不同的实现 virtual关键字表示虚方法 override关键字实现方法重写 1 2 Employee ema = new SE(210,Ema,33,Gender.female,100); Console.WriteLine(ema.SayHi()); 定义父类变量,创建子类对象 fo

文档评论(0)

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

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

1亿VIP精品文档

相关文档