TP4继承、多态、抽象、接口.pptVIP

  • 1
  • 0
  • 约1.05万字
  • 约 58页
  • 2020-12-26 发布于浙江
  • 举报
C#中的继承、多态、接口 回顾 类是 C# 中的一种结构,用于在程序中模拟现实生活的对象 成员变量表示对象的特征 方法表示对象可执行的操作 如果类中未定义构造函数,则由运行库提供默认构造函数 析构函数不能重载,并且每个类只能有一个析构函数 可以根据不同数量的参数或不同数据类型参数对方法进行重载,不能根据返回值进行方法重载 命名空间用来界定类所属的范围,类似于Java中的包 本章目标 面向对象的三大特性 隐藏内部实现,稳定外部接口 继承 子类继承父类成员,实现代码复用 多态 不同子类对同一个消息作出不同的反映 封装 代码冗余 对比这两个类:Student 和 Teacher 加入校长、班主任的类,都需要加入这几个属性,代码冗余 年龄、性别、姓名是重复的 如何共用重复代码? 提取冗余代码 将公共的成员放到一个类中 保留自己特有的成员 保留自己特有的成员 提取后的应用 class Student:Person { public Student(){ } //爱好 private string hobby; public string Hobby { get { return hobby; } set { hobby = value; } } … } 1、提取后的Student类 只有学员特有的属性 2、创建一个学员对象 Student zhang = new Student(); zhang.Name = 张靓靓; zhang.Age = 20; zhang.Gender = Genders.Female; zhang.Hobby = 唱歌歌; 公共属性可以访问 继承 演示示例1:简单的继承 卡车和巴士都是汽车 生活中的继承 汽车 他们共有的特征来自汽车 有什么共同特征呢? 卡车 公共汽车 父类和子类 在C#中,一个类可以继承另一个类 Person 子类继承父类,父类派生子类 学员和老师类都继承Person Student Teacher 子类 父类 Student类继承Person类 Person类派生Student类 子类又叫派生类 父类又叫基类 class Student:Person 继承概述 继承需要符合的关系:is-a Student is a Person 子类继承父类的成员 子类可以有自己的成员 继承父类的成员 自己特有的成员 继承是面向对象的一个重要特性 继承在类图中的表示 继承的实际应用1 班上所有的人都做自我介绍SayHi() 学员 大家好,我是某某同学,今年多少岁,喜欢什么 老师 大家好,我是某某老师,今年多少岁,工作几年了 子类中访问继承父类的公共属性 子类特有属性 继承的实际应用2 公共属性加入父类 有独自的SayHi() 继承的实际应用3 Teacher和Student类都继承Person public class Student:Person public class Teacher:Person public Student(string name, Genders gender, int age, string hobby, int popularity) { this.Name = name; this.Age = age; this.Gender = gender; //学生类扩展的属性 this.Hobby = hobby; this.Popularity = popularity; } 构造函数设置公共属性与独有属性 继承自父类的公共属性 子类扩展的属性 继承的实际应用4 都有不同的SayHi()方法 public void SayHi() { //学生的SayHi } public void SayHi() { //老师的SayHi } 创建对象调用SayHi() Student zhang = new Student(…); Teacher jacky = new Teacher(…); zhang.SayHi(); jacky.SayHi(); 学生调用自己的SayHi() 老师调用自己的SayHi() 演示示例2:MySchool base关键字 关键字base的作用 调用父类的属性和方法 调用父类的构造函数 public void SayHi() { string message = string.Format( 大家好,我是{0} 同学,今年{1} 岁了,我喜欢{2}!, ba

文档评论(0)

1亿VIP精品文档

相关文档