08 面向对象编程继承.pdf
上传人:qw****27 上传时间:2024-09-12 格式:PDF 页数:26 大小:258KB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

08 面向对象编程继承.pdf

08面向对象编程继承.pdf

预览

免费试读已结束,剩余 16 页请下载文档后查看

15 金币

下载此文档

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

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

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

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

第8章使用继承和多态NET在线培训学习资料更多学习材料,请到www.rzchina.net下载继承是面向对象的特性之一,也是类与类之间关系的主要纽带。万物虽然复杂,但是从中找出一个本质的事物特性作为基本万物的根,这个根在类中也被称之为基类,表示其余的类都是从这个类派生出来。派生就意味着子类要从父类得到父类的所有特性,这种关系被称之为继承。本章将介绍继承的基本概念,并分析在继承中的各种方法,如new操作符、protected修饰符等,还将介绍如何创建一个接口,并使用多个接口。本章也将介绍抽象类、密封类等具有特色的类形式。8.1继承继承指的是对被继承对象进行的一次具体化操作,因为被继承的对象一般都具有一些抽象的概念,这些概念概括了很多具体的操作和概念,所以不具备可操作性,为了将对象更加实例化和明确化的目的,在继承的同时,就要将这些操作、方法和成员都进行具体化。例如,水果是一个抽象的概念,苹果就比水果更具体一些;水果具有的特性包括,气味、形状、颜色、口味等。具体到苹果,可以是带有香气的水果味道和较为圆润的外形。所以说苹果是对水果的一次具体化,也是对水果的继承,如图9-1所示。第1章C#语言入门·213·口味颜色气味形状水果继承水果图8-1苹果从水果实现了继承关系8.2使用继承继承体现了一种分类的方法,从大量的类别中选出具有大多数基本特征的类作为可以继承的基类,而将其余能表现具体事物的类作为基类的子类,这些子类从基类中继承基类的所有特性,这种划分类的方法是对自然规律的总结,也是面向对象设计的主要特点。在本节中将分析如何实现基类和从基类派生的类,以及使用C#语言提供的修饰符语法定义方法。8.2.1基类和派生类C#语言的类都来源于System.Object对象,也就是说所有的类都从Object中继承,Object可以视为所有类的一个“根”类而存在。基类可以定义为一个基本的类,具有大多数类的一些基本特征,允许其余的类从其实现继承的操作。派生类可以定义为是一个比较复杂的类,该类从基类中实现继承,具有了基类的全部特征,还可以具体实现自己独特的特征。一个典型的派生语法如下所示:Class<derivedclass>:<BaseClass>例如,下面的代码中首先定义了一个基类,这个基类只有一般性的特征,默认从Object中继承,接下来从该基类中定义一个派生类,该类实现了基类的具体操作,并且具有自己的操作。(1)打开VisualStudio2005编辑器,单击“文件”菜单,选择“新建项目”命令,打开VisualStudio2005编辑器的创建向导,接着语言选择C#,选择“控制台应用程序”,如图8-2所示。·214·第5章创建Web窗体图8-2类的继承的实现(2)修改生成的代码文件如下所示:usingSystem;usingSystem.Collections.Generic;usingSystem.Text;namespacejicheng{classclassA{publicclassA(){Console.WriteLine("基类的构造函数");}publicvoidComputerA(){//基类的成员函数Ainta,b,c;Console.WriteLine("基类的成员函数A:");for(inti=0;i<3;++i){a=i*2;b=i+10;c=a+b;Console.WriteLine("第{0}次的计算过程中,"+"c的值是:{1}",i,c);}}voidComputerB(){Console.WriteLine("这个成员不能被继承");}第1章C#语言入门·215·}classclassB:classA{publicclassB(){Console.WriteLine("从classA继承过来的派生类B");}publicvoidComputerC(){inta,b,c;Console.WriteLine("\n派生类B的成员函数C:");for(inti=1;i<4;++i){a=i*3;b=i+10;c=a*b;Console.WriteLine("第{0}次的计算过程中"+"a的值是:{1},"+"b的值是:{2},"+"c的值是:{3}",i,a,b,c);}}voidComputerD(){Console.WriteLine("这个成员不能被继承");}}classProgram{staticvoidMain(string[]arg