虛方法與抽象方法的區別

2021-07-09 06:34:53 字數 1180 閱讀 5397

隨著學習的深入了解的也是越來越多,之前學習vb的時候

可能級別太低,

什麼虛方法,抽象方法根本就沒聽過。只知道有乙個「方法」,那今天就讓我們說說虛方法,抽象方法的到底是何方神聖以及它們之間的區別。

1、虛方法有自己的函式體,已經提供了函式實現,但是允許在子類中重寫或覆蓋。重寫的子類虛函式就是被覆蓋了。

2、使用virtual關鍵字 public virtual .....;

3、呼叫虛方法,執行時將確定呼叫物件是什麼類的例項,並呼叫適當的覆寫的方法;

4、在乙個虛擬方法呼叫中,該呼叫所涉及的那個例項的執行時型別確定了要被呼叫的究竟是該方法的哪乙個實現。

public class animal

public virtual void eat(){}

}

1、

抽象方法是只有定義、沒有實際方法體的函式,它只能在抽象函式中出現,並且在子類中必須重寫。2、使用abstract關鍵字 public abstract bool withdraw(…);

3、如果類中包含抽象方法,那麼類就必須定義為抽象類,不論是否還包含其它一般方法

public abstract class animal

簡單點說,抽象方法是需要子類去實現的.虛方法,是已經實現了,子類可以去覆蓋,也可以不覆蓋取決於需求. 

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

1. 虛方法必須有實現部分,抽象方法沒有提供實現部分,抽象方法是一種強制派生類覆蓋的方法,否則派生類將不能被例項化。

2. 抽象方法只能在抽象類中宣告,虛方法不是。其實如果類包含抽象方法,那麼該類也是抽象的,也必須宣告為抽象的。

3. 抽象方法必須在派生類中重寫,這一點跟介面類似,虛方法不必。

【總結】

在學習的過程中,關於虛方法和抽象方法的仍然還有很多東西要去注意,像使用環境,**的編寫等等他們之間也存在異同,在練習的時候就需要我們去注意一下,實踐很重要,在學習過程中要多練習,盡量把講到的例子自己動手敲一下,這樣才能加深我們對知識的理解。

C 中抽象方法與虛方法區別

什麼時候使用抽象方法 當兩個或多個類中有重複部分的時候,我們可以把重複的部分抽象出來作為乙個基類,如果希望這個基類不能被例項化,就可以把這個基類設計成抽象類。抽象方法特點 1 抽象方法沒有方法體 2 抽象方法用abstract修飾 3 抽象方法必須在抽象類中 4 抽象類無法例項化 5 父類是抽象類,...

抽象方法與虛方法

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

虛方法與抽象方法

虛方法 virtual,虛方法給父類提供了一種預設的實現,子類可以使用override重寫虛方法,虛方法不能出現在密封類 sealed 中。抽象類,不能被例項化,但可以例項化其子類的物件,抽象方法必須出現在抽象類中,抽象方法必須在子類中重寫。子類繼承抽象類,必須重寫抽象類中所有的抽象方法 除非子類也...