學過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#程序設計能有所幫助。
新聞熱點
疑難解答