第5章 面向对象高级应用精选文档.ppt
《第5章 面向对象高级应用精选文档.ppt》由会员分享,可在线阅读,更多相关《第5章 面向对象高级应用精选文档.ppt(20页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第5章 面向对象高级应用本讲稿第一页,共二十页5.1 继承下图反映了图类的派生关系。最高层的实体往往具有最一般最普通的特征,下图反映了图类的派生关系。最高层的实体往往具有最一般最普通的特征,越底层的越具体,并且包含了上一层的特征,它们之间的关系就可以表现为越底层的越具体,并且包含了上一层的特征,它们之间的关系就可以表现为面向对象中的继承关系。面向对象中的继承关系。本讲稿第二页,共二十页继承的语法:继承的语法:访问修饰符访问修饰符 class 类名类名:基类名称:基类名称 例例5.1 最简单的继承示例。最简单的继承示例。P69 例例5.2 对例对例5.1进行修改,在派生类进行修改,在派生类B中,
2、分别添加一个方法及属性。中,分别添加一个方法及属性。P70例例5.3 继承中的继承中的base关键字。关键字。P71例例5.4 继承中的构造函数。继承中的构造函数。P72 本讲稿第三页,共二十页从例从例5.4中可见,在中可见,在C#中,构造函数的执行顺序是:中,构造函数的执行顺序是:先调用基类的构造函数,再依次调用各派生类的先调用基类的构造函数,再依次调用各派生类的构造函数。构造函数。C#中的继承符合下列规则:中的继承符合下列规则:1、继承是可传递的。如果、继承是可传递的。如果C从从B中派生,中派生,B又从又从A中派生,中派生,那么那么C不仅继承了不仅继承了B中声明的成员,同样也继承了中声明的
3、成员,同样也继承了A中的成中的成员。员。2、派生类应当是对基类的扩展。派生类可以添加新的成员,、派生类应当是对基类的扩展。派生类可以添加新的成员,但不能除去已经继承的成员的定义。但不能除去已经继承的成员的定义。3、类可以定义虚方法、虚属性等。它的派生类能够重、类可以定义虚方法、虚属性等。它的派生类能够重载这些成员,从而实现类可以展示出多态性。载这些成员,从而实现类可以展示出多态性。本讲稿第四页,共二十页5.2 多态性多态性继承使得在原有的类基础之上,对原有的程序进行扩展,从而提继承使得在原有的类基础之上,对原有的程序进行扩展,从而提高程序开发的速度,实现代码的复用。同一种方法作用于不同对高程序
4、开发的速度,实现代码的复用。同一种方法作用于不同对象可以产生不同的结果,这就是多态性。象可以产生不同的结果,这就是多态性。C#中的多态包括两类:编译时多态性和运行时的多态性。中的多态包括两类:编译时多态性和运行时的多态性。编译时的多态性是通过我们前面所介绍的方法重载来实现的。运编译时的多态性是通过我们前面所介绍的方法重载来实现的。运行时的多态是指直到系统运行时,才根据实际情况决定要实现何行时的多态是指直到系统运行时,才根据实际情况决定要实现何种操作。种操作。C#中运行时的多态性是通过虚方法来实现的。中运行时的多态性是通过虚方法来实现的。本讲稿第五页,共二十页虚方法虚方法虚方法的定义要用到虚方法
5、的定义要用到virtual关键字关键字,如下所示:,如下所示:public class Animal public virtual void Eat()Console.WriteLine(Eat something);这样,这样,Animal 类的任何派生类都可以实现新的类的任何派生类都可以实现新的 Eat()方法。方法。本讲稿第六页,共二十页多态性 如果在派生类中要重写基类方法,那么需要使用如果在派生类中要重写基类方法,那么需要使用 override 关键字,如下所关键字,如下所示:示:public class Cat:Animal public override void Eat()Con
6、sole.WriteLine(Eat small animals);本讲稿第七页,共二十页抽象类和抽象方法当创建一个类时,有时候需要让该类包含一些特殊方法,该类对这些方法不提供实现,该类的派生类必须实现这些方法,这些方法为抽象方法(没有被实现的空方法)。能够包含抽象成员的类称为抽象类,包含抽象成员的类一定是抽象类,抽象类也可包含非抽象成员。抽象类不能直接实例化,也不能被密封,只能作为其它类的基类。抽象方法声明:访问修饰符 abstract 返回值类型 方法名(参数列表);本讲稿第八页,共二十页5.3 接口接口接口是引用类型,一个接口的定义相当于一个约定。实现某接接口是引用类型,一个接口的定义相
7、当于一个约定。实现某接口的类或结构必须遵循该接口定义的约定。在某种程度上,接口的类或结构必须遵循该接口定义的约定。在某种程度上,接口像一个抽象类。可以定义接口的方法、属性、索引器和事件口像一个抽象类。可以定义接口的方法、属性、索引器和事件等,但是接口不提供成员的实现,仅指定实现该接口的类或结等,但是接口不提供成员的实现,仅指定实现该接口的类或结构所必须提供的成员,继承接口的类必须提供接口成员的实现。构所必须提供的成员,继承接口的类必须提供接口成员的实现。在前面所介绍的继承中,类无法实现多继承,即一个类只能继在前面所介绍的继承中,类无法实现多继承,即一个类只能继承于一个基类而不能同时继承于多个基
8、类。在承于一个基类而不能同时继承于多个基类。在C#中允许一个中允许一个接口继承于多个接口,当继承于多个接口时,各个接口接口继承于多个接口,当继承于多个接口时,各个接口之间用之间用“,”号隔开。号隔开。本讲稿第九页,共二十页接口接口接口是引用类型,接口成员包括:接口是引用类型,接口成员包括:方法方法属性属性 索引器索引器 事件事件本讲稿第十页,共二十页声明接口声明接口 声明接口要使用声明接口要使用 interface 关键字关键字例如:例如:interface ICarnivore bool IsHungry get;set;void Eat(Animal Victim);本讲稿第十一页,共二十
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第5章 面向对象高级应用精选文档 面向 对象 高级 应用 精选 文档
限制150内