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

  • 116
  • 0
  • 约6.58千字
  • 约 40页
  • 2016-03-14 发布于湖北
  • 举报
初识继承和多态--第五章解析.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)

1亿VIP精品文档

相关文档