C 基礎 虛方法和抽象方法

2021-07-09 20:11:37 字數 826 閱讀 4335

學過c#的人,應該都聽過說虛方法和抽象方法,但是對於初學者來說,虛方法和抽象方法,還可能會時常搞混他們的關係。因此我們非常有必要抽出時間,把他們放在一起,進行對比,揭開他們神秘的外紗。

虛方法和抽象方法都可以供派生類重寫,那麼他們之間有什麼區別呢?

虛方法必須有實現部分,而抽象方法必須沒有實現部分

public class animal//虛方法 

//實現部分

// virtual是虛方法的關鍵字型

public virtual void shout()

{}}

public abstract class animal

正是因為抽象方法沒有實現部分,所以必須強制其派生類重寫其實現方法。使其在子類中實現。否則派生類將不能被例項化。(這一點並不用擔心,因為如果我們制定乙個子類繼承抽象父類,那麼我們的編譯器會自動新增必須重寫的方法。)

public class cat:animal

public override void shout()

}

抽象方法和虛方法的區別:

虛方法有乙個實現部分,並為派生類提供了覆蓋該方法的選項,相反,抽象方法沒有提供實現部分,強制派生類覆蓋方法;

abstract方法只能在抽象類中宣告,虛方法不是。

abstract方法必須在派生類中重寫,而virtual則不必。

abstract方法不能宣告方法實體,虛方法則可以。

C 虛方法和抽象方法

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

C 虛方法和抽象方法

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

C 虛方法和抽象方法

當子類方法和父類方法相同時,可以隱藏基類方法,也可以用虛方法,這時子類就可以重寫父類的方法了,這就是類的多型形式,重寫還可以用在抽象方法中,並且是抽象方法的類就必須重寫,虛方法和抽象方法都能讓子類重寫,它們之間有什麼區別呢?類的方法名可以和父類的方法名重名,但是會報綠線,為了解決這個問題可以在子類方...