抽象类和抽象方法是C#中的重要概念之一,通过抽象类和抽象方法可以实现特定的处理功能。本节将分别简要介绍C#中抽象类和抽象方法的基本知识。
1.抽象类
抽象类不和具体的事物相联系,它只能表达一种抽象的概念,只为它的派生子类提供一个公共接口界面。抽象类是不完整的类,在定义时需要使用abstract修饰符。具体格式如下:
C#抽象类主要有如下四个特点。
1)抽象类不能被直接实例化,并且在使用new运算符时会导致编译错误。
2)允许抽象类包含抽象成员。
3)抽象类不能被封装。
4)当从一个抽象类中派生出一个非抽象类时,需要在非抽象子类中重写抽象方法,以便使它独立实现某特定功能。
2.抽象成员
因为不用声明抽象类的具体实现,所以只需要预留一个接口即可作为派生子类的继承界面,这些成员就称为抽象成员。抽象成员可以是方法、属性、索引器和事件。
C#抽象成员的主要特点如下。
1)只能在抽象类中定义抽象成员。
2)在声明类的成员时,使用修饰符abstract即可定义一个抽象成员。
3)抽象成员不能是私有的,所以不能和private修饰符同时使用。
实例46:根据定义的方法执行对应的处理方法
下面通过一个简单实例来说明使用抽象类和抽象方法的具体流程,本实例保存在“光盘:\daima\10”文件夹内,项目名为chouxiang。实例的功能是根据定义的方法执行对应的处理方法。实例文件的主要代码如下:
上述实例代码的设计流程如下。(www.xing528.com)
1)使用abstract定义抽象类club,并在其中声明抽象方法F()。
2)定义club的派生子类qiudui,并重写其基类club的抽象方法F()。
3)定义qiudui的派生子类en,并重写其基类的方法F(),用于输出英国球队。
4)定义club的派生子类it,并重写其基类的方法F(),用于输出意大利球队。
5)定义club的派生子类sp,并重写其基类的方法F(),用于输出西班牙球队。
6)通过Read()获取球队类型,并设置球队所属类型种类数为4。
7)定义方法F(),根据获取的球队类型调用对应的处理函数。
8)在Main()中分别调用对应的处理方法。
执行后将分别调用对应的处理方法,输出显示对应的文本,如图10-5所示。
图10-5 实例执行结果
多学一招
抽象类能够被用于类、方法、属性、索引器和事件,使用abstract在一个类声明中表示该类倾向。要作为其他类的基类成员被标识成abstract,或被包含进一个抽象类,必须被其派生类实现。抽象方法有以下特征:
一个抽象方法可以看做是一个虚函数。
抽象方法的声明只能在抽象类中。
因为抽象方法声明只提供一个无实现的方式,没有方法体。
抽象方法体的实现被覆写方法提供,覆写方法是一个非抽象类的成员。
抽象属性的行为和抽象方法相像,除了不同的声明形式。
在一个静态属性中使用abstract是一个错误。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。