Compartilhar via


MustInherit

Especifica que uma classe pode ser usada somente sistema autônomo uma classe base e que não é possível criar um objeto diretamente a partir dele.

Comentários

A finalidade de um classe base (também conhecido sistema autônomo um classe abstrata) é definir funcionalidade comum a todas sistema autônomo classes derivadas dele.Isso evita que as classes derivadas tenha que redefinir os elementos comuns.Em alguns casos, essa funcionalidade comum não é completa para tornar um objeto utilizável e cada classe derivada define a funcionalidade ausente.Nesse caso, você deseja que o código consumindo criar objetos a partir de classes derivadas.Usar MustInherit na classe base para impor isso.

Outro uso de um MustInherit classe é restringir uma variável a um conjunto de classes relacionadas. Você pode definir uma classe base e derivam essas classes relacionadas ele.A classe base não precisa fornecer qualquer funcionalidade comum a todas sistema autônomo classes derivadas, mas pode servir sistema autônomo um filtro para atribuir valores a variáveis.Se seu código consumindo declara uma variável de classe base, o Visual Basic permite que você atribuir somente um objeto de uma das classes derivadas para a variável.

O .NET estrutura define vários MustInherit classes, entre eles Array, Enum, e ValueType. ValueType é um exemplo de uma classe base que restrinja uma variável. Derivam de todos os tipos de valores de ValueType. Se você declarar uma variável sistema autônomo ValueType, você pode atribuir somente tipos de valor para essa variável.

Regras

  • Contexto da Declaração. Você pode usar MustInherit somente em um Class demonstrativo.

  • Modificadores Combinados. Não é possível especificar MustInherit juntamente com NotInheritable na mesma declaração.

Exemplo

O exemplo a seguir ilustra os herança forçada e substituindo forçada.A classe base shape define uma variável acrossLine. As classes circle e square derivar de shape. Eles herdam a definição de acrossLine, mas eles devem definir a função area como esse cálculo é diferente para cada tipo de forma.

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

Você pode declarar shape1 e shape2 para ser do tipo shape. No entanto, não é possível criar um objeto de shape porque não possui a funcionalidade da função area e é marcado MustInherit.

Porque elas são declaradas sistema autônomo shape, sistema autônomo variáveis shape1 e shape2 são restritos a objetos para classes derivadas circle e square. Visual Basic não permite a atribuição de qualquer Outros objeto a essas variáveis, que oferece um alto nível de segurança de tipos.

Uso

O modificador MustInherit pode ser utilizado neste contexto:

Declaração de Classe

Consulte também

Referência

Declaração Inherits

NotInheritable

Palavras-chave Linguagem Visual Basic

Outros recursos

Herança no Visual Basic