预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共34页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第7章 继承和接口内容提要: C#的继承机制 派生类的构造与析构 多态性 继承和接口的用法 目的要求: 掌握继承和接口的声明及调用 重点难点: 继承、接口7.1C#的继承机制 7.1.1继承的基本知识 继承(Inheritance)是自动地共享类、派生类和对 象中的方法和数据的机制。它允许在既有类的基础 上创建新类,新类从既有类中继承类成员,而且可 以重新定义或加进新的成员,从而形成类的层次或 等级。一般称被继承的类为基类或父类,而继承后 产生的类为派生类或子类。类之间的继承关系的存在,对于在实际系统的开发中迅速建立原型,提高系统的可重用性和可扩充性,具有十分重要的意义。 派生类的声明格式为: 属性类修饰符class类名:基类{类体} 在类声明中,通过在类名的后面加上冒号和基类名表示继承。 7.1.3覆盖 当一个实例方法声明包含一个override限定符 时,这个方法就用相同的属性覆盖一个被继承的 虚拟方法,则此方法被称为覆盖方法。覆盖方法 声明不能包括new,static,virtual或abstract限定 符中的任何一个,对于一个覆盖声明,除非下面 都是可行的,否则,编译时就会出错: 一个被覆盖的基本方法能被定位; 被覆盖的基本方法是虚拟的、抽象的方法,既被 覆盖的基本方法不能是静态的或非虚拟的; 覆盖声明及被覆盖的基本方法具有相同的声明访 问性。 一个覆盖声明访问被覆盖的基本方法。7.2多态性 面向对象的程序设计语言中,多态性是第三种最基本的特征(前两种是封装和继承)。多态性(polymorphism来自希腊语,意思是多种形态)是指允许一个接口访问动作的通用类的性质。 7.2.1多态性概述 多态性是指在一般类中定义的属性或行为,被特殊类继承之后,可以具有不同数据类型或表现出不同的行为。这使得同一个属性或行为在一般类及其各个特殊类中具有不同的语义。7.2.2虚方法 当方法声明中包含virtual修饰符时,方法就被称为虚方法。当没有virtual修饰符时,方法被称为非虚方法,虚方法定义中不能包含static、abstract或override修饰符。 非虚方法的执行是不变的,不管方法在从它声明的类的实例中还是在派生类中的实例中被调用,执行都是相同的。相反,虚方法的执行可以被派生类改变,具体实现是在派生类中重新定义此虚方法实现的。重新定义此虚方法时,要求方法名称、返回值类型、参数表中的参数个数、类型顺序都必须与基类中的虚方法完全一致,而且要在方法声明中加上override关键字,不能有new,static或virtual修饰符。7.3接口 接口是用来描述组件对外提供的服务,并在组 件和组件之间,组件和客户之间定义交互的标准。 组件一旦发布,它只能通过预先定义的接口来提供 合理的,一致的服务,这种接口定义之间的稳定性 使客户应用开发者能够构造出坚固的应用。7.3.1接口的定义 1.声明 一个接口定义了一个协议。一个实现了某个接口的类或结构必须符合它的协议。一个接口可以从多个基本接口继承,而一个类或结构也可以实现多个接口。 接口可以包含方法、属性和索引等(即在接口中只能包含方法而不能包含变量)。接口自己不为它所定义的成员提供具体实现。接口只是指定类中必须被实现的成员。 格式: [接口修饰符]interface接口名[:基接口名] { 接口的成员; }; 接口的继承 接口具有不变性,但这并不意味着接口不再发展。类似于类的继承性,接口也可以继承和发展。 接口可以从零或多个接口中继承。从多个接口中继承时,用“:”后跟被继承的接口名字。多个接口名之间用“,”分割。被继承的接口应该是可以访问到的,即不能从private或internal类型的接口继承,接口还不允许直接或间接地从自身继承。例: usingSystem; interfaceIControl { voidPaint(); } interfaceITextBox:IControl { voidSetText(stringtext); } interfaceIListBox:IControl { voidSetItems(string[]items); } interfaceIComboBox:ITextBox,IListBox { } 对一个接口的继承也就继承了接口的所有成员。上例中,接口ITextBox和IListBox都从接口IControl中继承的,也就继承了接口IControl的Paint方法。IComboBox的基本接口是IControl、ITextBox,和IListBox。即上面的接口IComboBox继承了接口IControl的Paint方法、ITextBox的SetText方法和IListBox的Set