Udostępnij za pośrednictwem


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:

Instrukcja klasy

Zobacz też

Informacje

Dziedziczy instrukcji

NotInheritable (Visual Basic)

Koncepcje

Dziedziczenie podstawy (Visual Basic)

Inne zasoby

Słowa kluczowe (Visual Basic)