控制台應用程式中,新建乙個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,子類繼承父類後,可以選擇對虛方法...
虛方法實現多型
大家都知道物件導向的三大特徵,封裝 繼承 多型,這裡解釋一下多型 同一操作作用於不同的物件,可以有不同的解釋,產生不同的執行結果,這就是多型性。換句話說,實際上就是同乙個型別的例項呼叫 相同 的方法,產生的結果是不同的。這裡的 相同 打上雙引號是因為這裡的相同的方法僅僅是看上去相同的方法,實際上它們...