抽象方法 虛方法小結

2022-01-31 04:48:04 字數 1605 閱讀 3006

abstract :表示方法是抽象方法,在子類中必須重寫。抽象方法所在的類必須是抽象類,即用abstract modifiers;

virtual:表示此方法是virtual方法,除了在子類中可以重寫外(在子類中也可直接使用),和普通方法完全一樣;

override:表示重寫父類的virtual方法;

new: 顯式隱藏從基類繼承的成員;

區別:virtual:標記方法為虛方法

1.可在派生類中以override覆蓋此方法

2.不覆蓋也可由物件呼叫

3.無此標記的方法(也無其他標記),重寫時需用new隱藏原方法

abstract 與virtual : 方法重寫時都使用 override 關鍵字

如果子類重寫了父類的虛方法,那麼通過父類變數來呼叫這個方法的時候會呼叫子類的,如果沒有,則會呼叫父類的

eg1:

public

abstract

class book

public

abstract

void getprice(); //抽象方法,不含主體

public

virtual

void getname() //虛方法,可覆蓋

public

virtual

void getcontent() //虛方法,可覆蓋

public

void getdate() //一般方法,若在派生類中重寫,須使用new關鍵字

}public

class chinesebook : book

public

override

void getname() //覆蓋原方法,不是必須的

public

newvoid getdate()

public

void run()

}

output:

this is a test:chinesebook override abstract getprice()

this is a test:chinesebook override virtual getname()

this is a test:virtual getcontent()

this is a test:chinesebook new getdate()

eg2:

public

abstract

class flowmodel

public

virtual

void c()

public

void d()

}public

class flow:flowmodel

public

virtual

void b()

public

void c()

public

newvoid d()

public

void run()

}

output:
execute step a

execute step b

execute step c

execute step d

抽象方法與虛方法

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

C 虛方法 抽象方法

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

虛方法與抽象方法

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