首页 > 编程 > C# > 正文

C#中抽象方法与虚拟方法的区别

2020-01-24 02:30:01
字体:
来源:转载
供稿:网友

学过C#的人应该都知道抽象方法与虚拟方法,而很多初学者对二者之间的区别并不是很了解。今天本文就来分析一下二者之间的区别。并附上实例加以说明。具体分析如下:

一、主要区别:

对于抽象方法,子类必须实现它

对于虚拟方法,子类可以重写也可以不重写

因此,两者约束不同

二、实例代码如下:

/* 声明一个抽象类* 1.抽象类中可以包含变量* 2.抽象方法中无法声明方法体*/abstract class AbsClass{    string name;  public abstract void DisplayValue(string value);}/*继承抽象类的子类必须实现抽象方法*/class AbsClassInherited : AbsClass{  /*使用override重写实现*/  public override void DisplayValue(string value)  {    Console.WriteLine(value.ToUpper());  }} /* 声明虚拟函数 */class VirtClass{  /*声明一个虚拟函数   虚拟函数必须实现方法体*/  public virtual void DisplayValue(string value)  {    Console.WriteLine(value);  }}/*虚拟方法可以实现也可以不实现*/class VirtClassInherited : VirtClass{  /*使用override重写实现*/  public override void DisplayValue(string value)  {    Console.WriteLine(value.ToUpper());  }}/* 声明一个接口 * 1.接口中的方法必须是公用的 * 2.接口中不允许有变量 * 3.接口中的方法不允许有方法体 */interface IAbs{  void DisplayValue(string value);}

希望本文所做的分析对大家的C#程序设计能有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表