Sdílet prostřednictvím


MustInherit (Visual Basic)

Určuje třídu lze pouze jako základní třída a objekt nelze vytvořit z něj.

Poznámky

Účel základní třídy (také známé jako abstraktní třída) je definování funkcí, které jsou společné pro všechny třídy odvozené od něj.Tím ušetří odvozené třídy s předefinovat společné prvky.V některých případech společné funkce není dostatečně úplné použitelné objekt a každá odvozená třída definuje chybějící funkce.V takovém případě má náročné kód vytvořit objekty pouze z odvozených tříd.Pomocí MustInherit na základní třídy to vynutit.

Jiné použití MustInherit třída je proměnná omezit sadu souvisejících tříd.Můžete definovat základní třídy a z něj odvodit těchto souvisejících tříd.Základní třída není nutné poskytnout žádné funkce, které jsou společné pro všechny odvozené třídy, ale může sloužit jako filtr pro přiřazení hodnoty proměnné.Pokud náročné kód deklaruje proměnnou jako základní třída, Visual Basic umožňuje přiřadit pouze objekt některé z odvozených tříd této proměnné.

Na.NET Framework definuje několik MustInherit tříd, mezi nimi Array, Enum, a ValueType.ValueTypeje příkladem základní třídy, která omezuje proměnné.Všechny typy hodnoty se odvozují z ValueType.Pokud deklarujete proměnnou jako ValueType, můžete přiřadit pouze typy hodnota této proměnné.

Pravidla

  • Prohlášení kontextu. Můžete použít MustInherit pouze Class prohlášení.

  • Kombinovanými modifikátory. Nelze zadat MustInherit spolu s NotInheritable ve stejné deklaraci.

Příklad

Následující příklad ukazuje vynucené dědičnosti a Vynucené přepsání.Základní třída shape definuje proměnné acrossLine.Třídy circle a square odvodit z shape.Dědí definici acrossLine, ale funkci musí definovat area protože tento výpočet je pro každý druh obrazce liší.

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

Můžete deklarovat shape1 a shape2 typu shape.Však nelze vytvořit objekt shape protože postrádá funkcí funkce area a je označen MustInherit.

Protože jsou deklarovány jako shape, proměnné shape1 a shape2 jsou omezeny na objekty z odvozených tříd circle a square.Visual Basic neumožňuje tyto proměnné přiřadit jiný objekt, který nabízí vysokou úroveň bezpečnosti typu.

Použití

MustInherit Modifikátor lze v této souvislosti:

Příkaz class

Viz také

Referenční dokumentace

Inherits – příkaz

NotInheritable (Visual Basic)

Koncepty

Základní informace o dědičnosti (Visual Basic)

Další zdroje

Klíčová slova (Visual Basic)