C 虛方法和抽象方法

2021-08-24 20:23:57 字數 1233 閱讀 6770

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

類的方法名可以和父類的方法名重名,但是會報綠線,為了解決這個問題可以在子類方法的修飾符後面加new,第二種方法就是在父類的訪問修飾符後加virtual,在基類中使用virtual修飾的方法稱為虛方法。

1. virtual修飾符不能與static、abstract或者override修飾符同時使用;

2. 方法重寫與積累的簽名必須一致

3. virtual不能與private一起使用,因為虛方法不能是私有的

4. 可以重寫override,寫可以不override

在上圖**中,在基類person中定義了虛方法getname(),現在在子類teacher中重寫getname()方法:

在子類中例項化並且呼叫:

- 抽象方法必須用在抽象類中,有抽象類的不一定有抽象方法

- 子類不能寫成抽象類,因為只有子類能重寫,抽象類中的抽象方法必須被子類重寫

- 抽象類除了類有abstract修飾符,它內部跟普通類一樣,可以有:屬性、構造、已經實現的方法。

- 必須重寫

namespace _01.多型抽象方法和抽象類

}public

abstract

class aniaml//宣告抽象類

public

class pig:aniaml //繼承抽象類,子類必須重寫抽象方法}}

虛方法

抽象方法

用virtual修飾

用abstract修飾

基類中要有方法體

基類中不允許有方法體

可以被子類override

必須被子類override

除了密封類都可以寫

只能在抽象類中

通過比較清晰了不少,在以後的學習和運用中一定會越來越熟練。

C 虛方法和抽象方法

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

C 虛方法和抽象方法

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

C 虛方法 抽象方法

首先在c 中虛方法的定義 public virtual void virtualmethod 只要在方法名前加上virtual,就宣告了該方法為虛方法,注意宣告為虛方法後再不能加上abstract,static關鍵字宣告 以下是插入乙個例項來說明虛方法與非虛方法的不同 public class a ...