學(xué)過C#的人應(yīng)該都知道抽象方法與虛擬方法,而很多初學(xué)者對二者之間的區(qū)別并不是很了解。今天本文就來分析一下二者之間的區(qū)別。并附上實例加以說明。具體分析如下:
一、主要區(qū)別:
對于抽象方法,子類必須實現(xiàn)它。
對于虛擬方法,子類可以重寫也可以不重寫。
因此,兩者約束不同
二、實例代碼如下:
/* 聲明一個抽象類* 1.抽象類中可以包含變量* 2.抽象方法中無法聲明方法體*/abstract class AbsClass{ string name; public abstract void DisplayValue(string value);}/*繼承抽象類的子類必須實現(xiàn)抽象方法*/class AbsClassInherited : AbsClass{ /*使用override重寫實現(xiàn)*/ public override void DisplayValue(string value) { Console.WriteLine(value.ToUpper()); }} /* 聲明虛擬函數(shù) */class VirtClass{ /*聲明一個虛擬函數(shù) 虛擬函數(shù)必須實現(xiàn)方法體*/ public virtual void DisplayValue(string value) { Console.WriteLine(value); }}/*虛擬方法可以實現(xiàn)也可以不實現(xiàn)*/class VirtClassInherited : VirtClass{ /*使用override重寫實現(xiàn)*/ public override void DisplayValue(string value) { Console.WriteLine(value.ToUpper()); }}/* 聲明一個接口 * 1.接口中的方法必須是公用的 * 2.接口中不允許有變量 * 3.接口中的方法不允許有方法體 */interface IAbs{ void DisplayValue(string value);}希望本文所做的分析對大家的C#程序設(shè)計能有所幫助。
新聞熱點
疑難解答
圖片精選