欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2023-12-22 10:53:16
学过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#程序设计能有所帮助。

上一篇:

下一篇: