總結 C 虛方法與抽象方法的區別

2022-06-29 20:09:08 字數 1402 閱讀 4520

虛方法

抽象方法

用virtual修飾

用abstract修飾

要用方法體,哪怕是乙個分號

不允許有方法體

可以被子類override(重寫)

必須被子類override(重寫)

除了密封類都可以寫

只能在抽象類中

完整**如下

1

using

system;

2using

system.collections.generic;

3using

system.linq;

4using

system.text;

5using

system.threading.tasks;67

namespace823

}2425///

26///

定義乙個抽象類

27///

特點:1、抽象方法沒有方法體;2、抽象方法只能在抽象類中;3、必須被子類override重寫

28///

29public

abstract

class

抽象類30

3637

///38

///繼承基類的方法需要override重寫基類的抽象方法

39///

40public

class

studenta : 抽象類

4149}50

51///

52///

普通方法

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

選擇考慮方式:

例子:學生們的愛好

抽象方法:如果要求實現輸出各位同學愛好不同,則定義乙個基類「學生們的愛好」抽象類,子類就是「各位同學呼叫抽象方法實現,某某同學喜歡打藍球,某某同學喜歡打兵乓球。」

這是我個人理解的,不知道是否正確。

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

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

虛方法與抽象方法的區別

隨著學習的深入了解的也是越來越多,之前學習vb的時候 可能級別太低,什麼虛方法,抽象方法根本就沒聽過。只知道有乙個 方法 那今天就讓我們說說虛方法,抽象方法的到底是何方神聖以及它們之間的區別。1 虛方法有自己的函式體,已經提供了函式實現,但是允許在子類中重寫或覆蓋。重寫的子類虛函式就是被覆蓋了。2 ...

C 抽象方法與虛方法的區別例項

虛方法和抽象方法都可以供派生類重寫,它們之間有什麼區別呢?1.虛方法必須有實現部分,並為派生類提供了覆蓋該方法的選項 抽象方法沒有提供實現部分,抽象方法是一種強制派生類覆蓋的方法,否則派生類將不能被例項化。如 2.抽象方法只能在抽象類中宣告,抽象方法必須在派生類中重寫 虛方法不是 也不必要重寫。其實...