C# base關(guān)鍵字淺談
C# base關(guān)鍵字用于從派生類(lèi)中訪問(wèn)基類(lèi)的成員:調(diào)用基類(lèi)上已被其他方法重寫(xiě)的方法。指定創(chuàng)建派生類(lèi)實(shí)例時(shí)應(yīng)調(diào)用的基類(lèi)構(gòu)造函數(shù)?;?lèi)訪問(wèn)只能在構(gòu)造函數(shù)、實(shí)例方法或?qū)嵗龑傩栽L問(wèn)器中進(jìn)行。
示例:
在派生類(lèi)中調(diào)用基類(lèi)方法。
- //base關(guān)鍵字
- //訪問(wèn)基類(lèi)成員
- usingSystem;
- publicclassBaseClass
- {
- protectedstring_className="BaseClass";
- publicvirtualvoidPrintName()
- {
- Console.WriteLine("ClassName:{0}",_className);
- }
- }
- classDerivedClass:BaseClass
- {
- publicstring_className="DerivedClass";
- publicoverridevoidPrintName()
- {
- Console.Write("TheBaseClassNameis{0}");
- //調(diào)用基類(lèi)方法
- base.PrintName();
- Console.WriteLine("ThisDerivedClassis{0}",_className);
- }
- }
- classTestApp
- {
- publicstaticvoidMain()
- {
- DerivedClassdc=newDerivedClass();
- dc.PrintName();
- }
- }
- /**//*
- 控制臺(tái)輸出:
- TheBaseClassNameisBaseClass
- ThisDerivedClassisDerivedClass
- */
- 在派生類(lèi)中調(diào)用基類(lèi)構(gòu)造函數(shù)。
- //keywords_base2.cs
- usingSystem;
- publicclassBaseClass
- {
- intnum;
- publicBaseClass()
- {
- Console.WriteLine("inBaseClass()");
- }
- publicBaseClass(inti)
- {
- num=i;
- Console.WriteLine("inBaseClass(int{0})",num);
- }
- }
- publicclassDerivedClass:BaseClass
- {
- //該構(gòu)造器調(diào)用BaseClass.BaseClass()
- publicDerivedClass():base()
- {
- }
- //該構(gòu)造器調(diào)用BaseClass.BaseClass(inti)
- publicDerivedClass(inti):base(i)
- {
- }
- staticvoidMain()
- {
- DerivedClassdc=newDerivedClass();
- DerivedClassdc1=newDerivedClass(1);
- }
- }
從靜態(tài)方法中使用C# base關(guān)鍵字是錯(cuò)誤的。C# base關(guān)鍵字主要用于面向?qū)ο箝_(kāi)發(fā)的對(duì)態(tài)這方面。
【編輯推薦】