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.
Megadja, hogy egy osztály csak alaposztályként használható, és hogy közvetlenül nem hozhat létre objektumot belőle.
Megjegyzések
Az alaposztály (más néven absztrakt osztály) célja olyan funkciók meghatározása, amelyek az abból származtatott összes osztályra jellemzőek. Így a származtatott osztályok nem lesznek újradefiniáltak a közös elemek között. Bizonyos esetekben ez a gyakori funkció nem elég teljes egy használható objektum létrehozásához, és minden származtatott osztály meghatározza a hiányzó funkciókat. Ilyen esetben azt szeretné, hogy a fogyasztó kód csak a származtatott osztályokból hozzon létre objektumokat. Ezt az alaposztályon kell MustInherit érvényesíteni.
Az osztály másik MustInherit használata, ha egy változót egy kapcsolódó osztályra korlátoz. Meghatározhat egy alaposztályt, és az összes kapcsolódó osztályt levezetheti belőle. Az alaposztálynak nem kell minden származtatott osztályhoz közös funkciót biztosítania, de szűrőként szolgálhat az értékek változókhoz való hozzárendeléséhez. Ha a fogyasztó kód egy változót deklarál alaposztályként, a Visual Basic lehetővé teszi, hogy csak egy objektumot rendeljen hozzá az egyik származtatott osztályból a változóhoz.
A .NET-keretrendszer több MustInherit osztályt határoz meg, köztük ArrayEnuma .ValueType
ValueType Egy példa egy változót korlátozó alaposztályra. Minden értéktípus a forrásból ValueTypeszármazik. Ha egy változót deklarál, ValueTypecsak értéktípusokat rendelhet hozzá.
Szabályok
Deklarációs környezet. Csak utasításban
ClasshasználhatóMustInherit.Kombinált módosítók. Ugyanabban a deklarációban nem adható meg
MustInheritegyüttNotInheritable.
példa
Az alábbi példa a kényszerített öröklést és a kényszerített felülírást is szemlélteti. Az alaposztály shape definiál egy változót acrossLine. Az osztályokcircle, és square származik .shape Öröklik a definíciót acrossLine, de meg kell határozniuk a függvényt area , mert ez a számítás különböző az egyes alakzatok esetében.
Public MustInherit Class shape
Public acrossLine As Double
Public MustOverride Function area() As Double
End Class
Public Class circle : Inherits shape
Public Overrides Function area() As Double
Return Math.PI * acrossLine
End Function
End Class
Public Class square : Inherits shape
Public Overrides Function area() As Double
Return acrossLine * acrossLine
End Function
End Class
Public Class consumeShapes
Public Sub makeShapes()
Dim shape1, shape2 As shape
shape1 = New circle
shape2 = New square
End Sub
End Class
Deklarálhatja a deklarált shape1 és shape2 a típust shape. Azonban nem hozhat létre objektumot shape , mert nem rendelkezik a függvény area funkcióval, és a jelölése meg van jelölve MustInherit.
Mivel ezek deklarálva shapevannak, a változók shape1 , és shape2 a származtatott osztályok circle és squarea . A Visual Basic nem teszi lehetővé, hogy más objektumokat rendeljen ezekhez a változókhoz, ami magas szintű biztonságot nyújt.
Használat
A MustInherit módosító ebben a környezetben használható: