码迷,mamicode.com
首页 > Windows程序 > 详细

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

时间:2017-11-13 23:28:54      阅读:477      评论:0      收藏:0      [点我收藏+]

标签:strong   pad   技术分享   eve   win   sha   分析   工具   自定义控件   

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

除声明外,跑步客文章均为原创,转载请以链接形式标明本文地址
  C#中抽象方法与虚拟方法的区别

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






相关内容

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

标签:strong   pad   技术分享   eve   win   sha   分析   工具   自定义控件   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!