1. 程式人生 > >C#中抽象方法與虛擬方法的區別

C#中抽象方法與虛擬方法的區別

的人 -a 對象 abstract 數據 style html tools mar

學過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#使用MCI創建的視頻或聲音播放器 源代碼下載技術分享C#實現關閉子窗口而不釋放子窗口對象的方法技術分享C#操作LINQ to SQL組件進行數據庫建模的基本教程技術分享C#自定義控件添加右鍵菜單的方法
技術分享基於C#實現XML文件讀取工具類技術分享C#中Dictionary類使用實例技術分享C#通過鏈表實現隊列的方法技術分享WinForm相對路徑的陷阱

C#中抽象方法與虛擬方法的區別