软件编程
位置:首页>> 软件编程>> C#编程>> C#中抽象方法与虚拟方法的区别

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

作者:shichen2014  发布时间:2021-10-30 07:30:15 

标签:C#

学过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#程序设计能有所帮助。

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com