Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gibt an, dass eine Klasse nur als Basisklasse verwendet werden kann und dass Sie ein Objekt nicht direkt daraus erstellen können.
Bemerkungen
Der Zweck einer Basisklasse (auch als abstrakte Klasse bezeichnet) besteht darin, Funktionen zu definieren, die allen von ihr abgeleiteten Klassen gemeinsam sind. Dadurch werden die abgeleiteten Klassen daran gehindert, die gemeinsamen Elemente neu zu definieren. In einigen Fällen ist diese allgemeine Funktionalität nicht vollständig genug, um ein verwendbares Objekt zu erstellen, und jede abgeleitete Klasse definiert die fehlende Funktionalität. In einem solchen Fall möchten Sie, dass der verbrauchende Code Objekte nur aus den abgeleiteten Klassen erstellt. Sie verwenden MustInherit die Basisklasse, um dies zu erzwingen.
Eine weitere Verwendung einer MustInherit Klasse besteht darin, eine Variable auf einen Satz verwandter Klassen zu beschränken. Sie können eine Basisklasse definieren und alle diese verwandten Klassen daraus ableiten. Die Basisklasse muss keine Funktionalität bereitstellen, die allen abgeleiteten Klassen gemeinsam ist, aber sie kann als Filter zum Zuweisen von Werten zu Variablen dienen. Wenn Ihr verbrauchender Code eine Variable als Basisklasse deklariert, können Sie in Visual Basic nur ein Objekt aus einer der abgeleiteten Klassen dieser Variablen zuweisen.
.NET Framework definiert mehrere MustInherit Klassen, darunter Array, Enumund ValueType.
ValueType ist ein Beispiel für eine Basisklasse, die eine Variable einschränkt. Alle Werttypen werden von ValueType. Wenn Sie eine Variable als ValueTypedeklarieren, können Sie dieser Variablen nur Werttypen zuweisen.
Regeln
Deklarationskontext. Sie können nur in einer
ClassAnweisung verwendet werdenMustInherit.Kombinierte Modifizierer. Sie können nicht zusammen mit
MustInheritderselben Deklaration angebenNotInheritable.
Beispiel
Das folgende Beispiel veranschaulicht sowohl die erzwungene Vererbung als auch die erzwungene Überschreibung. Die Basisklasse shape definiert eine Variable acrossLine. Die Klassen circle und square abgeleitet von shape. Sie erben die Definition von acrossLine, aber sie müssen die Funktion area definieren, da diese Berechnung für jede Art von Form unterschiedlich ist.
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
Sie können deklarieren shape1 und shape2 vom Typ shapesein. Sie können jedoch kein Objekt shape erstellen, weil es nicht die Funktionalität der Funktion area enthält und markiert MustInheritist.
Da sie als shapedeklariert werden, sind die Variablen shape1 und auf Objekte aus den abgeleiteten Klassen circle und squareshape2 . Visual Basic ermöglicht es Ihnen nicht, diesen Variablen ein anderes Objekt zuzuweisen, wodurch Sie eine hohe Typsicherheit erhalten.
Verwendung
Der MustInherit Modifizierer kann in diesem Kontext verwendet werden: