Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A származtatott osztály örökli az alaposztály összes definícióját. Ha az alaposztály elemével azonos néven szeretne definiálni egy változót, elrejtheti vagy árnyékba helyezheti az alaposztály-elemet, amikor a változót a származtatott osztályban definiálja. Ha ezt teszi, a származtatott osztály kódja csak akkor fér hozzá a változóhoz, ha az explicit módon nem halad át az árnyékolási mechanizmuson.
Az örökölt változók elrejtésének másik oka az alaposztály módosításától való védelem. Az alaposztály olyan módosításon eshet át, amely módosítja az öröklődő elemet. Ha ez történik, a Shadows módosító arra kényszeríti a származtatott osztály hivatkozásait, hogy azok az alaposztály elem helyett az Ön változójára legyenek feloldva.
Örökölt változó elrejtése
Győződjön meg arról, hogy az elrejteni kívánt változó osztályszinten van deklarálva (bármilyen eljáráson kívül). Ellenkező esetben nem kell elrejtenie.
A származtatott osztályon belül írjon egy dim utasítást , amely deklarálja a változót. Használja ugyanazt a nevet, mint az örökölt változó neve.
Adja meg az Árnyékok kulcsszót a deklarációban.
Ha a származtatott osztály kódja a változó nevére hivatkozik, a fordító feloldja a változóra mutató hivatkozást.
Az alábbi példa egy örökölt változó árnyékolását szemlélteti:
Public Class ShadowBaseClass Public shadowString As String = "This is the base class string." End Class Public Class ShadowDerivedClass Inherits ShadowBaseClass Public Shadows shadowString As String = "This is the derived class string." Public Sub ShowStrings() Dim s As String = $"Unqualified shadowString: {shadowString}{vbCrLf}MyBase.shadowString: {MyBase.shadowString}" MsgBox(s) End Sub End ClassAz előző példa deklarálja a változót
shadowStringaz alaposztályban, és árnyékot ad a származtatott osztálynak. A származtatott osztály eljárásaShowStringsakkor jeleníti meg a sztring árnyékolt verzióját, ha a névshadowStringnincs minősítve. Ezután megjeleníti az árnyékolt verziót, hashadowStringaMyBasekulcsszóval van minősítve.
Robusztus programozás
Az árnyékolás egy azonos nevű változó több verzióját is bevezeti. Ha egy kódutasítás a változó nevére hivatkozik, a kompiler által használt verzió olyan tényezőktől függ, mint a kódutasítás helye és a minősítő sztring jelenléte. Ez növelheti az árnyékolt változók nem tervezett verziójára való hivatkozás kockázatát. Ezt a kockázatot csökkentheti egy árnyékolt változóra mutató összes hivatkozás teljes minősítésével.
Lásd még
- Deklarált elemekre mutató hivatkozások
- Árnyékolás a Visual Basicben
- Az árnyékolás és a felülírás közötti különbségek
- Hogyan rejtsünk el egy változót, amely ugyanazzal a névvel rendelkezik, mint a saját változónk
- Útmutató: Egy származtatott osztály által rejtett változó elérése
- Felülírások
- Én, Enyém, MyBase és MyClass
- Öröklés alapjai