虛方法與抽象方法

2022-02-19 11:29:38 字數 1136 閱讀 2560

虛方法 virtual,虛方法給父類提供了一種預設的實現,子類可以使用override重寫虛方法,虛方法不能出現在密封類(sealed)中。

抽象類,不能被例項化,但可以例項化其子類的物件,抽象方法必須出現在抽象類中,抽象方法必須在子類中重寫。子類繼承抽象類,必須重寫抽象類中所有的抽象方法(除非子類也是抽象類)

作為父類來用,抽象類給子類提供公共的實現(非抽象方法)和能力,為子類提供所需要的成員,抽象類中也可以有實現

讓父類引用指向子類物件,把不同的子類物件都當作父類來看,可以遮蔽不同子類物件之間的差異,寫出通用的**,做出通用的程式設計,以適應需求的不斷變化。所有的方法掉用都通過父類 類似於中轉

虛方法與抽象方法的區別

1 虛方法必須有實現部分(預設實現 在子類中根據需要修改),抽象方法沒有提供實現部分

2 抽象方法必須在抽象類中宣告,虛方法可以在類中實現

3 抽象方法必須在子類中重寫,虛方法可以被重寫

下面用**來說明:

定義三個類 animal cat dog    animal為父類 含有cat和dog共有的say()方法

animal :

abstract

class

animal

//共有方法

public

void

eat()

//抽象方法不能有實現

abstract

public

void

sleep();

}

cat : 實現父類中的抽象方法

class

cat:animal

}

dog:重寫父類中定義的say()虛方法

class

dog:animal

public

override

void

sleep()

}

看看呼叫:  animal為抽象方法,不能直接例項化。這裡例項化子類並存放在陣列中

class

program

;foreach (animal item in

cd)

console.read();

}}

抽象方法與虛方法

在物件導向程式設計語言中抽象方法指一些只有方法宣告,沒有具體方法體的方法。抽象方法一般存在於抽象類或介面中。在c 中,抽象方法具有以下特性 抽象方法是隱式的virtual方法 只允許在抽象類中使用抽象方法宣告 因為抽象方法不提供實現,所以沒有方法體 方法宣告只是以乙個分號結束,並且在簽名後沒有大括號...

虛方法與抽象方法

虛方法 1 virtual方法表示此方法可以被重寫,也就是說這個方法具有多型.父類中的方法是通用方法,可以在子類中重寫以重新規定方法邏輯.2 virtual方法可以直接使用,和普通方法一樣 3 不是必須重寫的.子類可以使用base.方法 的方式呼叫,無論有沒有在子類使用override去重寫 vir...

抽象方法與虛方法

虛方法 使用virtual關鍵字 可以有方法的實現,子類在繼承虛方法的類時要可以重寫這個方法 虛函式僅適用於有繼承關係的類物件,所以只有類的成員函式才能說明為虛函式 靜態成員函式不能是虛函式 static不能用來修飾virtual 建構函式不能是虛函式 析構函式可以是虛函式 抽象方法 使用abstr...