<a href="http://www.cnblogs.com/blsong/archive/2010/08/12/1798064.html">C#中Abstract和Virtual</a>
在C#的學習中,容易混淆virtual方法和abstract方法的使用,現在來讨論一下二者的差別。二者都牽涉到在派生類中與override的配合使用。
一、Virtual方法(虛方法)
virtual 關鍵字用于在基類中修飾方法。virtual的使用會有兩種情況:
情況1:在基類中定義了virtual方法,但在派生類中沒有重寫該虛方法。那麼在對派生類執行個體的調用中,該虛方法使用的是基類定義的方法。
情況2:在基類中定義了virtual方法,然後在派生類中使用override重寫該方法。那麼在對派生類執行個體的調用中,該虛方法使用的是派生重寫的方法。
二、Abstract方法(抽象方法)
abstract關鍵字隻能用在抽象類中修飾方法,并且沒有具體的實作。抽象方法的實作必須在派生類中使用override關鍵字來實作。
接口和抽象類:
最本質的差別:抽象類是一個不完全的類,是對對象的抽象,而接口是一種行為規範。