MustInherit (Visual Basic)

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 Array, Enumés 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 Class használhatóMustInherit.

  • Kombinált módosítók. Ugyanabban a deklarációban nem adható meg MustInherit együtt NotInheritable .

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ó:

Osztályutasítás

Lásd még