欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C#中抽象方法與虛擬方法的區(qū)別

 更新時(shí)間:2014年08月21日 09:12:59   投稿:shichen2014  
這篇文章主要介紹了C#中抽象方法與虛擬方法的區(qū)別,對(duì)于C#初學(xué)者來(lái)說(shuō)可以深入理解抽象方法與虛擬方法,需要的朋友可以參考下

學(xué)過(guò)C#的人應(yīng)該都知道抽象方法與虛擬方法,而很多初學(xué)者對(duì)二者之間的區(qū)別并不是很了解。今天本文就來(lái)分析一下二者之間的區(qū)別。并附上實(shí)例加以說(shuō)明。具體分析如下:

一、主要區(qū)別:

對(duì)于抽象方法,子類(lèi)必須實(shí)現(xiàn)它。

對(duì)于虛擬方法,子類(lèi)可以重寫(xiě)也可以不重寫(xiě)。

因此,兩者約束不同

二、實(shí)例代碼如下:

/* 聲明一個(gè)抽象類(lèi)
* 1.抽象類(lèi)中可以包含變量
* 2.抽象方法中無(wú)法聲明方法體
*/
abstract class AbsClass
{  
  string name;
  public abstract void DisplayValue(string value);
}

/*繼承抽象類(lèi)的子類(lèi)必須實(shí)現(xiàn)抽象方法*/
class AbsClassInherited : AbsClass
{
  /*使用override重寫(xiě)實(shí)現(xiàn)*/
  public override void DisplayValue(string value)
  {
    Console.WriteLine(value.ToUpper());
  }
}
 /* 聲明虛擬函數(shù)
 */
class VirtClass
{
  /*聲明一個(gè)虛擬函數(shù)
   虛擬函數(shù)必須實(shí)現(xiàn)方法體*/
  public virtual void DisplayValue(string value)
  {
    Console.WriteLine(value);
  }
}
/*虛擬方法可以實(shí)現(xiàn)也可以不實(shí)現(xiàn)*/
class VirtClassInherited : VirtClass
{
  /*使用override重寫(xiě)實(shí)現(xiàn)*/
  public override void DisplayValue(string value)
  {
    Console.WriteLine(value.ToUpper());
  }
}

/* 聲明一個(gè)接口
 * 1.接口中的方法必須是公用的
 * 2.接口中不允許有變量
 * 3.接口中的方法不允許有方法體
 */
interface IAbs
{
  void DisplayValue(string value);
}

希望本文所做的分析對(duì)大家的C#程序設(shè)計(jì)能有所幫助。

相關(guān)文章

最新評(píng)論