C#中抽象方法與虛擬方法的區別
阿新 • • 發佈:2017-11-14
的人 -a 對象 abstract 數據 style html tools mar
C#中抽象方法與虛擬方法的區別
本文地址: http://www.paobuke.com/develop/c-develop/pbk23625.html
基於C#實現XML文件讀取工具類C#中Dictionary類使用實例C#通過鏈表實現隊列的方法WinForm相對路徑的陷阱
學過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#中抽象方法與虛擬方法的區別