C#编程技术基础 教学课件 ppt 作者 武汉厚溥教育科技有限公司 7_第七章-继承和多态

上传人:E**** 文档编号:89449994 上传时间:2019-05-25 格式:PPTX 页数:23 大小:682KB
返回 下载 相关 举报
C#编程技术基础 教学课件 ppt 作者 武汉厚溥教育科技有限公司 7_第七章-继承和多态_第1页
第1页 / 共23页
C#编程技术基础 教学课件 ppt 作者 武汉厚溥教育科技有限公司 7_第七章-继承和多态_第2页
第2页 / 共23页
C#编程技术基础 教学课件 ppt 作者 武汉厚溥教育科技有限公司 7_第七章-继承和多态_第3页
第3页 / 共23页
C#编程技术基础 教学课件 ppt 作者 武汉厚溥教育科技有限公司 7_第七章-继承和多态_第4页
第4页 / 共23页
C#编程技术基础 教学课件 ppt 作者 武汉厚溥教育科技有限公司 7_第七章-继承和多态_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《C#编程技术基础 教学课件 ppt 作者 武汉厚溥教育科技有限公司 7_第七章-继承和多态》由会员分享,可在线阅读,更多相关《C#编程技术基础 教学课件 ppt 作者 武汉厚溥教育科技有限公司 7_第七章-继承和多态(23页珍藏版)》请在金锄头文库上搜索。

1、第五章,继承和多态,可以使用Array类的CreateInstance方法来创建Array对象,也可以直接创建数组对象 集合用于管理在运行时动态创建的元素项 ArrayList在Array的基础上提供了动态的特性 用户可以使用Hashtable类将数据、键作为一组来存储,这些数据是根据键进行组织的 Array类属于System命名空间,而ArrayList类属于System.Collections命名空间 泛型可以提高减少程序的代码量,并能实现安全和提高效率 List是最常用的泛型集合类,回顾,理解继承的概念 继承中的构造函数 base和protected关键字的语法 掌握密封类的语法 理解多

2、态的概念 virtual、override关键字,本章目标,生活中的继承,卡车和巴士都是汽车,汽车,他们共有的特征来自汽车,有什么共同特征呢?,卡车,公共汽车,父类和子类,在C#中,一个类可以继承另一个类,Person,子类继承父类,父类派生子类,学员和老师类都继承Person,Student,Teacher,子类,父类,Student类继承Person类 Person类派生Student类,子类又叫派生类 父类又叫基类,class Student:Person,继承概述3-1,子类继承父类的成员 子类可以有自己的成员,继承父类的成员,自己特有的成员,继承是面向对象的一个重要特性,继承在类图中

3、的表示,继承概述3-2,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、公共属性与独有属性,继承自父类的公共属性,子类扩展的属性,继承概述3-3,public class Graduate: Student, Employee / 成员变量 / 成员函数 ,多重继承,允许多重接口实现,继承中的构造方法,构造方法不能被继承。那么子类是如何初始化基类成员的呢? base关键字的使用,base关键字,关键字base的作用 调用父类的属性和方法 调用父类的构造方法,public void SayHi() string message = string.Format( “大家好,我是0 同学,今年1 岁了,我喜欢2!“, base.Name, base.Age, this.

5、hobby); MessageBox.Show(message); ,调用父类的属性,public Student(string name, Genders gender, int age, string hobby, int popularity) : base(name,age,gender) /学生类扩展的属性 this.Hobby = hobby; this.Popularity = popularity; ,this.Name = name; this.Age = age; this.Gender = gender;,调用父类的构造方法,隐式调用父类的构造方法,Person类中去掉了

6、构造方法public Person() ,“Person”方法没有采用“0”个参数的重载,class Student:Person public Student() public Student(string name, Genders gender, int age, string hobby, int popularity) ,base(),隐式的调用,base(),子类的构造方法没有使用 base 指明调用父类哪个构造方法,父类要提供无参的构造方法,显示调用父类的构造方法,如果父类没有无参的构造方法,子类构造方法必须指明调用父类哪个构造方法,public Student() :base(

7、“张靓靓“,20,Genders.Female) public Student(string name, Genders gender, int age, string hobby, int popularity) : base(name,age,gender),protected访问修饰符,protected访问修饰符允许子类访问,protected访问修饰符不允许其他非子类访问,父类成员,如果父类中的某个成员只允许其子类访问,public修饰,所有类都可以访问,private修饰,子类无法访问,继承综述,模拟了现实世界的关系 实现代码重用 结构更清晰,Student,爱好,person,姓

8、名,年龄,子类更加关注与子类相关的行为和状态,共有属性由父类负责,多态性,继承性体现了子类和父类共同的特点和行为,体现了相似性 多态性则更推进了一步。突出了子类和父类不同的行为,体现了子类和父类的差异性 在派生于同一个类的不同对象上执行任务时,多态性是一种极为有效的技巧,其使用的代码最少,virtual关键字,Access modifier virtual return type name ( parameters-list ) . / Virtual 方法实现 . ,public virtual void Func() Console.WriteLine(“这是 virtual 方法,可以被

9、重写“); ,override关键字,Class Base / 成员变量 int basevar; / 成员函数 GetInfo() / 定义 . .,Class Derived : Base / 成员变量 int derivedvars; / 成员函数 override GetInfo() / 定义 . .,基类,派生类,base 方法的新实现,使用多态性,class Employee public virtual void EmpInfo() Console.WriteLine(“此方法显示职员信息“); ,class DervEmployee: Employee public overr

10、ide void EmpInfo() base.EmpInfo(); Console.WriteLine(“此方法重写 base 方法“); ,static void Main(string args) DervEmployee objDervEmployee = new DervEmployee(); objDervEmployee.EmpInfo(); Employee objEmployee = objDervEmployee; objEmployee.EmpInfo(); ,密封类,如果不希望一个类被其它的类继承,可以把这个类定义为密封类 定义密封类需要使用sealed关键字,示例,

11、sealed class Circle public int radius; /圆的半径 public double GetInfo() return 2 * Math.PI * radius; ,试图对密封类进行继承, class RedCircle : Circle ,代码将无法通过编译,密封方法,sealed关键字也可以修饰方法 类中定义的新方法不能用sealed修饰的 只有在子类中重写了基类的方法才可以用sealed修饰,密封方法示例, class A public virtual void ShowInfo() Console.WriteLine(“基类的方法“); class B

12、: A public override sealed void ShowInfo() Console.WriteLine(“该方法不能再被重写了!“); ,子类可以继承父类的非私有成员 不能继承父类的构造方法,子类构造方法会自动调用父类构造方法,并且父类构造方法先执行,再执行子类构造方法。使用base关键字显示调用父类构造方法。base关键字还可以访问父类成员 protected访问修饰符修饰的成员可以被子类和本身访问,其他类访问不了 密封类,sealed关键字修饰的类,表示不能被其他类继承。 多态是指二个或多个不同的类,对同一方法的不同代码实现 virtual、override关键字,子类重写父类的虚方法 父类对象可以引用子类实例,并且调用子类重写的方法,总结,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号