虛方法 virtual,虛方法給父類提供了一種預設的實現,子類可以使用override重寫虛方法,虛方法不能出現在密封類(sealed)中。
抽象類,不能被例項化,但可以例項化其子類的物件,抽象方法必須出現在抽象類中,抽象方法必須在子類中重寫。子類繼承抽象類,必須重寫抽象類中所有的抽象方法(除非子類也是抽象類)
作為父類來用,抽象類給子類提供公共的實現(非抽象方法)和能力,為子類提供所需要的成員,抽象類中也可以有實現
讓父類引用指向子類物件,把不同的子類物件都當作父類來看,可以遮蔽不同子類物件之間的差異,寫出通用的**,做出通用的程式設計,以適應需求的不斷變化。所有的方法掉用都通過父類 類似於中轉
虛方法與抽象方法的區別
1 虛方法必須有實現部分(預設實現 在子類中根據需要修改),抽象方法沒有提供實現部分
2 抽象方法必須在抽象類中宣告,虛方法可以在類中實現
3 抽象方法必須在子類中重寫,虛方法可以被重寫
下面用**來說明:
定義三個類 animal cat dog animal為父類 含有cat和dog共有的say()方法
animal :
abstractclass
animal
//共有方法
public
void
eat()
//抽象方法不能有實現
abstract
public
void
sleep();
}
cat : 實現父類中的抽象方法
classcat:animal
}
dog:重寫父類中定義的say()虛方法
classdog:animal
public
override
void
sleep()
}
看看呼叫: animal為抽象方法,不能直接例項化。這裡例項化子類並存放在陣列中
classprogram
;foreach (animal item in
cd)
console.read();
}}
抽象方法與虛方法
在物件導向程式設計語言中抽象方法指一些只有方法宣告,沒有具體方法體的方法。抽象方法一般存在於抽象類或介面中。在c 中,抽象方法具有以下特性 抽象方法是隱式的virtual方法 只允許在抽象類中使用抽象方法宣告 因為抽象方法不提供實現,所以沒有方法體 方法宣告只是以乙個分號結束,並且在簽名後沒有大括號...
虛方法與抽象方法
虛方法 1 virtual方法表示此方法可以被重寫,也就是說這個方法具有多型.父類中的方法是通用方法,可以在子類中重寫以重新規定方法邏輯.2 virtual方法可以直接使用,和普通方法一樣 3 不是必須重寫的.子類可以使用base.方法 的方式呼叫,無論有沒有在子類使用override去重寫 vir...
抽象方法與虛方法
虛方法 使用virtual關鍵字 可以有方法的實現,子類在繼承虛方法的類時要可以重寫這個方法 虛函式僅適用於有繼承關係的類物件,所以只有類的成員函式才能說明為虛函式 靜態成員函式不能是虛函式 static不能用來修飾virtual 建構函式不能是虛函式 析構函式可以是虛函式 抽象方法 使用abstr...