首页 理论教育 C#编程新手手册:多态的应用

C#编程新手手册:多态的应用

时间:2023-10-22 理论教育 版权反馈
【摘要】:多态性对具体的编程项目有巨大的作用。图10-3 实例执行结果多学一招在C#中多态性的定义是:同一操作作用于不同的类的实例,不同的类将进行不同的解释,最后产生不同的执行结果。

C#编程新手手册:多态的应用

如果在某个基类中使用virtual声明了方法F(),则在子类中使用override重写方法F()。如果使用编译时类型为基类对象D来引用方法F(),则在编译时就不能确定实际调用的方法是基类的F,还是子类的F。而只能根据对象D在运行时的类型来确定,这就使整个程序有不同的处理结果。这就是C#的多态性的最大好处。

多态性对具体的编程项目有巨大的作用。例如,可以将一组具有共同基类的对象放到一个特定数组内,然后通过声明来为基类的对象调用它们的同名方法,这样不同类的对象就能分别调用它们各自对应的方法。从而简化了代码编写量,提高了开发效率

1.处理方法多态性

处理方法多态性即在各类中方法具有的多态性。

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

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

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

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

上述实例代码的设计流程如下。

1)定义基类club,并在其中声明虚方法F()。

2)定义club的派生子类en,并重写基类club的方法F(),用于输出英国

3)定义club的派生子类it,并重写基类club的方法F(),用于输出意大利。

4)定义club的派生子类sp,并重写基类club的方法F(),用于输出西班牙。

5)定义club的派生子类ge,并重写基类club的方法F(),用于输出德国

6)通过Read()获取类型,并设置球队所属类型种类数为4。(www.xing528.com)

7)定义方法F(),根据获取的球队类型调用对应的处理函数。

8)在Main()中分别调用对应的处理方法。

执行后将分别调用对应的处理方法而输出显示对应的文本,如图10-3所示。

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

图10-3 实例执行结果

多学一招

在C#中多态性的定义是:同一操作作用于不同的类的实例,不同的类将进行不同的解释,最后产生不同的执行结果。C#支持如下两种类型的多态性。

(1)编译时的多态性

编译时的多态性是通过重载来实现的。对于非虚的成员来说,系统在编译时,根据传递的参数、返回的类型等信息决定实现何种操作。

(2)运行时的多态性

运行时的多态性就是指直到系统运行时,才根据实际情况决定实现何种操作。C#中,运行时的多态性通过虚成员实现。

2.更多成员的多态性

除了虚方法和方法重写外,C#还支持属性、索引器和事件的虚重写处理,即通过virtual和override对属性、索引器和事件进行修饰,实现多态性效果。

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

我要反馈