c 中abstract和virtual的用法和區別

2021-09-09 07:42:50 字數 569 閱讀 6680

abstract

1、只能用在抽象類中修飾

2、抽象方法是沒有實現的

public abstract void fly();

但是繼承的子類可以實現

public override void fly()

3、抽象類不能被例項化,只能被繼承

4、抽象方法子類必須實現。

5、抽象類裡面除了可以有抽象方法和抽象屬性以外,也可以有普通的方法和普通屬性,也可以用virtual修飾。

6、抽象類的建構函式可以省略,編譯器會自動加上,但是不能是乙個抽象方法,而只能是乙個普通的建構函式。

小結:抽象類不可以直接例項化,他可以有n個抽象方法、屬性也可以包含m個普通方法、屬性,抽象方法子類必須實現。

virtual

1、宣告了virtual的方法無需去改動類的宣告,他只在此方法上起到影響。

2、只有virtual的方法可以被子類override。

3、子類可以不ouverride父類的virtual方法,這種情況下他就像普通的父類方法一樣。

小結:virtual關鍵字就是告訴子類,此方法可以被override,但非強制。

C 中Abstract和Virtual使用

1.abstract 抽象類 應該算是介面和類的中間型別 2.abstract使用時被子類繼承 3.abstract無法例項化 4.abstract使用位置應該是 架構的最底層,用來實現一些公用方法 5.abstract類中可以有非abstract修飾的方法和屬性 6.繼承abstract類的子類一...

C 中 virtual 和 abstract 區別

1 這兩個都是用來修飾類和方法的 2 都不能用private修飾 3 virtual 虛擬 abstract 抽象 4 virtual修飾的方法必須有主體 而且子類可以不去實現這個方法 如果子類不重寫這個虛函式 在子類裡呼叫這個方法呼叫的是父類裡的 5 abstract修飾的方法不能有主體 子類必須...

C 中的abstract 類和方法

c 中的abstract類不能被例項化,他只提供其他類的繼承的介面 using system abstract class myabs class myclass myabs class myclient 乙個抽象類可以包含abstract方法,也可包含例項化方法,但繼承類 非抽象 必須實現abst...