首页 理论教育 C#编程:抽象类与抽像方法

C#编程:抽象类与抽像方法

更新时间:2025-01-18 工作计划 版权反馈
【摘要】:抽象类和抽象方法是C#中的重要概念之一,通过抽象类和抽象方法可以实现特定的处理功能。本节将分别简要介绍C#中抽象类和抽象方法的基本知识。2)允许抽象类包含抽象成员。1)只能在抽象类中定义抽象成员。1)使用abstract定义抽象类club,并在其中声明抽象方法F()。图10-5 实例执行结果多学一招抽象类能够被用于类、方法、属性、索引器和事件,使用abstract在一个类声明中表示该类倾向。抽象属性的行为和抽象方法相像,除了不同的声明形式。

抽象类和抽象方法是C#中的重要概念之一,通过抽象类和抽象方法可以实现特定的处理功能。本节将分别简要介绍C#中抽象类和抽象方法的基本知识。

1.抽象类

抽象类不和具体的事物相联系,它只能表达一种抽象的概念,只为它的派生子类提供一个公共接口界面。抽象类是不完整的类,在定义时需要使用abstract修饰符。具体格式如下:

978-7-111-36370-5-Part02-329.jpg

C#抽象类主要有如下四个特点。

1)抽象类不能被直接实例化,并且在使用new运算符时会导致编译错误。

2)允许抽象类包含抽象成员。

3)抽象类不能被封装。

4)当从一个抽象类中派生出一个非抽象类时,需要在非抽象子类中重写抽象方法,以便使它独立实现某特定功能。

2.抽象成员

因为不用声明抽象类的具体实现,所以只需要预留一个接口即可作为派生子类的继承界面,这些成员就称为抽象成员。抽象成员可以是方法、属性、索引器和事件。

C#抽象成员的主要特点如下。

1)只能在抽象类中定义抽象成员。

2)在声明类的成员时,使用修饰符abstract即可定义一个抽象成员。

3)抽象成员不能是私有的,所以不能和private修饰符同时使用。

实例46:根据定义的方法执行对应的处理方法

下面通过一个简单实例来说明使用抽象类和抽象方法的具体流程,本实例保存在“光盘:\daima\10”文件夹内,项目名为chouxiang。实例的功能是根据定义的方法执行对应的处理方法。实例文件的主要代码如下:

978-7-111-36370-5-Part02-330.jpg

978-7-111-36370-5-Part02-331.jpg

上述实例代码的设计流程如下。(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所示。

978-7-111-36370-5-Part02-332.jpg

图10-5 实例执行结果

多学一招

抽象类能够被用于类、方法、属性、索引器和事件,使用abstract在一个类声明中表示该类倾向。要作为其他类的基类成员被标识成abstract,或被包含进一个抽象类,必须被其派生类实现。抽象方法有以下特征:

978-7-111-36370-5-Part02-333.jpg一个抽象方法可以看做是一个虚函数。

978-7-111-36370-5-Part02-334.jpg抽象方法的声明只能在抽象类中。

978-7-111-36370-5-Part02-335.jpg因为抽象方法声明只提供一个无实现的方式,没有方法体。

978-7-111-36370-5-Part02-336.jpg抽象方法体的实现被覆写方法提供,覆写方法是一个非抽象类的成员。

978-7-111-36370-5-Part02-337.jpg抽象属性的行为和抽象方法相像,除了不同的声明形式。

978-7-111-36370-5-Part02-338.jpg在一个静态属性中使用abstract是一个错误。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈