C中的抽象方法和虛方法有什麼區別

2022-03-27 05:34:16 字數 1302 閱讀 8759

1樓:伊·梵

抽象方法就是純虛方法:只有定義,沒有實現。

private virtual foo() = 0;

有抽象方法的類就是抽象類。

抽象類不能用來定義物件,必須要作為其他類的基類,並在派生類中過載抽象方法。

c#的抽象類中,抽象方法和純虛函式區別

2樓:曹朕植

問題1:含有virtual修飾符的方法稱為虛擬方法。不能像你說的那樣定義。

問題2:

1)虛擬方專法,子屬類可以選擇性重寫此方法,也可以不重寫;而抽象(abstract

)方法,子類必須重寫。

2)虛擬方法可以有實體,如:

public virtual void vt()所以,可以直接呼叫虛擬方法;而抽象方法不能宣告方法實體,public abstract void ab(),不能直接呼叫。

3)虛方法可以實現多型,而抽象方法不可以

如果乙個類被宣告為abstract,

則在該抽象類中,可以存在沒有實現的方法,但該方法須宣告為abstract,

在其子類中,通過override關鍵字修辭幷包含具體的實現抽象類中的虛方法使用virtual關鍵字描述,並在子類中實現與抽象方法不同的是,虛方法可以有具體的實現,而抽象方法不可以有實現,類似於介面中規範的定義

3樓:

問題1:含有

baivirtual修飾符的方法du稱為虛擬方法。不能像zhi你說的那dao樣定義。

問題2:

1)虛擬方法,專子類可以屬選擇性重寫此方法,也可以不重寫;而抽象(abstract

)方法,子類必須重寫。

2)虛擬方法可以有實體,如:

public virtual void vt()所以,可以直接呼叫虛擬方法;而抽象方法不能宣告方法實體,public abstract void ab(),不能直接呼叫。

3)虛方法可以實現多型,而抽象方法不可以

4樓:破曉崇明

如果來乙個類被宣告為abstract,

則在該源抽象類中,可以存在沒有實現的方法,但該方法須宣告為abstract,

在其子類中,通過override關鍵字修辭幷包含具體的實現抽象類中的虛方法使用virtual關鍵字描述,並在子類中實現與抽象方法不同的是,虛方法可以有具體的實現,而抽象方法不可以有實現,類似於介面中規範的定義

5樓:匿名使用者

高質量認證每次進來都是好幾年之前的問題了。

c#中虛方法與抽象方法的區別

c 中抽象類到底有什麼用處,C 中 抽象類和虛基類用途上有什麼區別

提供了做蛋糕的模子和一套流程,至於做出來的蛋糕具體是什麼口味還得由你自己決定,但至少能保證你做出來的是蛋糕而不是麵包或者別的什麼,是共性與個性的統一!抽象類就像是乙個物種類一樣!比如。抽象類就是鳥這個物種。這個鳥是沒有這個動物的。從這個鳥類裡面繼承出來了雞孔雀等。然後虛函式就比方是特徵。比如雞的特徵...

在c 中純虛函式和抽象類的具體用途是什麼,他們的區別是什麼

從名字bai上就能 看出來,純du虛函式是一種 函式 zhi 抽象類是一dao種版 類 函式和類,自權然是最大的區別。它們的用途是定義抽象的介面。純虛函式是指沒有具體實現的虛函式,乙個類包含了純虛函式就成為了抽象類,這樣的類不能被建立例項,所以可以作為抽象介面,由子類來定義純虛函式的具體實現。c 中...

c 虛繼承有什麼缺點,C 中虛繼承和一般的繼承有什麼不同

不能抄說是缺點,只能說是特點。b c虛繼承a的話,那麼任何繼承b c的類都得指定如何構造其中包含的a。如果不是繼承,那麼類b c分別各自指明如何構造其中包含的a,繼承b c的類無需再指明也不能指明如何構造其中包含的a。虛繼承的話,虛基類必須由每個最後派生的類初始化 普通繼承的話,基類由這個基類直接派...