C#中多态、重载、重写区别分析

2021-04-25 14:12

阅读:731

标签:设计   form   应用   exce   价值   ima   合并   http   pad   

本文实例总结了C#中多态、重载与重写的概念与区别。对于初学C#的朋友来说有不错的参考价值。分享给大家供大家参考。具体分析如下:


重写



是指重写基类的方法,在基类中的方法必须有修饰符virtual,而在子类的方法中必须指明override

格式如下:

1.在基类中:

public virtual void myMethod()
{
}

2.在子类中:

public override void myMethod()
{
}

重写以后,用基类对象和子类对象访问myMethod()方法,结果都是访问在子类中重新定义的方法,基类的方法相当于被覆盖掉了。


重载:


用于在给定了参数列表和一组候选函数成员的情况下,选择一个最佳函数成员来实施调用


public void test(int x,int y){}
public void test(int x,ref int y){}
public void test(int x,int y,string a){}


重载的特征:

I.

方法名必须相同

II.

参数列表必须不相同,与参数列表的顺序无关

III.

返回值类型可以不相同


但如果有泛型,就要注意了!


多态:


c#的多态性主要体现在类的继承上

:

子类继承父类的时候,可能出现同名但方法定义不同的情况,

所以在子类中会将原方法覆盖,实现自身的要求.


需要注意的地方有两点:

①.可以在子类中被重写的方法一定要被标记成virtual(虚拟), abstract(抽象), override(重写)标记为virtual 和abstract 的函数就是为了重写而创建的,标记为override的函数本身是由前两种函数重写而来的,所以它可以被重写也是顺理成章的了;

②.重写的函数必须在子类中出现,而且任何一个父类的函数在其一个子类中只能被重写一次。(这一点很好理解,当你要重写两次时,该子类中将定义两个返回类型,方法名称 和参数列表都相同的函数,这肯定是不可能的)。

相信本文所述对大家C#程序设计的学习有一定的参考借鉴价值。

除声明外,跑步客文章均为原创,转载请以链接形式标明本文地址
  C#中多态、重载、重写区别分析

本文地址:  http://www.paobuke.com/develop/c-develop/pbk23494.html




相关内容

技术分享图片
.NET WinForm实现在listview中添加progressbar的方法
技术分享图片
C# Rx的主要接口深入理解
技术分享图片
c#动态类型,及动态对象的创建,合并2个对象,map实例
技术分享图片
c# 应用NPOI获取Excel中的图片,保存至本地的算法

技术分享图片
C# DateTime.ToString根据不同语言生成相应的时间格式
技术分享图片
理解C#中的Lambda表达式
技术分享图片
C#从字符串中指定位置移除子字符串的方法
技术分享图片
C#生成code128条形码的方法

C#中多态、重载、重写区别分析

标签:设计   form   应用   exce   价值   ima   合并   http   pad   

原文地址:http://www.cnblogs.com/paobuke/p/7919950.html


评论


亲,登录后才可以留言!