C 多型實現之虛方法

2021-06-16 18:56:36 字數 1666 閱讀 3018

控制台應用程式中,新建乙個people類檔案,**如下:

using system;

using system.collections.generic;

using system.linq;

using system.text;

namespace _13多型

public string name

//1.第一,將父類中的方法標記為「虛方法」:virtual

//2.當乙個方法是虛方法的時候,那麼這個方法在子類中就可以被重寫了。

//子類繼承父類以後,可以直接使用該方法,也可以將該方法重寫

public virtual void show()

}/// /// 中國人

///

public class chinese : people

//3.子類如果要重寫父類方法,則需要在子類的show方法前,加乙個override關鍵字,且有且只有這乙個表示重寫的override關鍵字。

public override void show()

,我是中國人!!",name);}}

/// /// 日本人

///

public class japanese : people

public override void show()

,我是日本人!!", name);}}

/// /// 美國人

///

public class american : people

public override void show()

,我是美國人!!", name);}}

/// /// 英國人

///

public class english : people

public override void show()

,我是英國人!!", name);}}

}

在主程式program中使用,**如下:

using system;

using system.collections.generic;

using system.linq;

using system.text;

namespace _13多型

; //遍歷陣列中的每個元素,呼叫每個元素的show方法

for (int i = 0; i < cns.length; i++)

else if (cns[i] is japanese)

else if (cns[i] is american)

#endregion

#region 新版本

//在父類中新增virtual虛show方法,通過cns[i]呼叫父類中的「虛方法」,進行判,

//如果子類重寫了父類的show方法,則呼叫子類的show方法;否則呼叫父類的show方法

//即:如果cns[i]中儲存的是chinese型別,則呼叫chinese的show方法;

//這就是多型的體現。

cns[i].show();

#endregion

}console.writeline("ok");

console.readkey();}}

}

多型實現之 虛方法

多型實現共有三種途徑,分別是 虛方法 抽象類 介面,本篇講述第一種方法 虛方法。1.什麼是虛方法?虛方法,從語法上來說是被virtual關鍵字修飾的方法,從含義上講,這個方法在類被繼承後可以在子類重寫 override 2.在子類中重寫虛方法需要注意哪些問題?首先說明的是,子類中的重寫並不是必須的,...

C 基礎 虛方法實現多型

虛方法 用virtual修飾的方法叫做虛方法 虛方法可以在子類中通過override關鍵字來重寫 常見的虛方法 tostring equals 虛方法特點總結 1,在父類中把需要設定為虛方法的方法前加virtual標記 2,虛方法在父類中必須有實現,哪怕是空實現 3,子類繼承父類後,可以選擇對虛方法...

虛方法實現多型

大家都知道物件導向的三大特徵,封裝 繼承 多型,這裡解釋一下多型 同一操作作用於不同的物件,可以有不同的解釋,產生不同的執行結果,這就是多型性。換句話說,實際上就是同乙個型別的例項呼叫 相同 的方法,產生的結果是不同的。這裡的 相同 打上雙引號是因為這裡的相同的方法僅僅是看上去相同的方法,實際上它們...