1.虛方法用到兩個關鍵字
virtual 和 override
當子類繼承與父類物件時,宣告乙個父類物件,通過在子類中重寫父類物件的方法,可以直接調到子類的方法
public class person
set
}public person(string name)
public virtual void sayhello()
public class chinese : person
public override void sayhello()
", this.name);}}
2.抽象類,一般父類為抽象類,抽象成員必須在抽象類中,抽象類中也可以有非抽象成員(個人感覺抽象類是實現多型的乙個介質)
1)抽象類的關鍵字為abstract,且不能被例項化
2)抽象類的方法必須為abstract修飾,且沒有方法體。
3)子類繼承父類物件方法也是用override進行重寫
4)如果子類繼承抽象類,則必須實現抽象類中的所有方法,且繼承這個抽象父類的子類在重寫父類方法時必須傳入和父類抽象方法一樣的引數,包括返回值也必須一樣
-------------虛方法和抽象類
1)如果父類中的方法有預設的實現,並且父類需要被例項化,這時可以考慮將父類定義為乙個普通類,用虛方法來實現
2)如果父類中的方法沒有預設實現,父類不需要被例項化,則可以將該類定義為抽象類。
public abstract class animal
{public abstract void sayhello()
public class dog():animal
public override void sayhello()
多型實現之 虛方法
多型實現共有三種途徑,分別是 虛方法 抽象類 介面,本篇講述第一種方法 虛方法。1.什麼是虛方法?虛方法,從語法上來說是被virtual關鍵字修飾的方法,從含義上講,這個方法在類被繼承後可以在子類重寫 override 2.在子類中重寫虛方法需要注意哪些問題?首先說明的是,子類中的重寫並不是必須的,...
C 多型實現之虛方法
控制台應用程式中,新建乙個people類檔案,如下 using system using system.collections.generic using system.linq using system.text namespace 13多型 public string name 1.第一,將父類...
虛方法實現多型
大家都知道物件導向的三大特徵,封裝 繼承 多型,這裡解釋一下多型 同一操作作用於不同的物件,可以有不同的解釋,產生不同的執行結果,這就是多型性。換句話說,實際上就是同乙個型別的例項呼叫 相同 的方法,產生的結果是不同的。這裡的 相同 打上雙引號是因為這裡的相同的方法僅僅是看上去相同的方法,實際上它們...