MustInherit (Visual Basic)
Określa, że klasa może być używana tylko jako klasa podstawowa i że nie można utworzyć obiektu bezpośrednio z.
Uwagi
Celem klasy bazowej (również znany jako Klasa abstrakcyjna) jest określenie funkcji, które są wspólne dla wszystkich klas pochodnych.Spowoduje to zapisanie klas pochodnych od konieczności przedefiniowanie wspólnych elementów.W niektórych przypadkach to typowa działalność nie jest wystarczająco kompletny, aby obiekt można używać, a każda Klasa pochodna definiuje brakujące funkcje.W takim przypadku należy zużywające kod, aby utworzyć obiekty tylko z klas pochodnych.Za pomocą MustInherit w klasie bazowej, aby wymusić to.
Innym zastosowaniem MustInherit klasy jest ograniczenie zmiennej do zestawu pokrewnych klas.Można definiować klasy podstawowej i od niej pochodzić te klasy pokrewne.Klasa podstawowa nie trzeba podać wszelkie funkcje, które są wspólne dla wszystkich klas pochodnych, ale może służyć jako filtr, służące do przypisywania wartości do zmiennych.Jeśli zużywające kod deklaruje zmienną jako klasa bazowa, Visual Basic pozwala przypisać tylko obiektu z jednej z klas pochodnych do tej zmiennej.
.NET Framework definiuje kilka MustInherit klasy, wśród nich Array, Enum, i ValueType.ValueTypejest przykładem klasy podstawowej, która ogranicza zmiennej.Wszystkie typy wartości pochodzić od ValueType.Jeśli zadeklarować zmienną jako ValueType, można przypisać tylko typy wartości tej zmiennej.
Zasady
Kontekst deklaracji. Można użyć MustInherit tylko w Class instrukcji.
Połączonymi modyfikatorami. Nie można określić MustInherit wraz z NotInheritable w tej samej deklaracji.
Przykład
Poniższy przykład ilustruje wymuszonego dziedziczenia i wymuszone przesłanianie.Klasa podstawowa shape definiuje zmienną acrossLine.Klasy circle i square pochodzić od shape.Dziedziczą definicji acrossLine, ale określają one funkcji area , ponieważ obliczenie jest inny dla każdego rodzaju kształt.
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
Można zadeklarować shape1 i shape2 się typ shape.Jednakże, nie można utworzyć obiektu z shape , ponieważ brakuje mu funkcje funkcji area i jest oznaczony jako MustInherit.
Ponieważ są one zgłoszone jako shape, zmienne shape1 i shape2 są ograniczone do obiektów z klasy pochodne circle i square.Języka Visual Basic nie pozwalają na przypisanie innego obiektu do tych zmiennych, które daje wysoki stopień bezpieczeństwa typu.
Sposób użycia
MustInherit Modyfikator mogą być używane w tym kontekście:
Zobacz też
Informacje
Koncepcje
Dziedziczenie podstawy (Visual Basic)