Compartilhar via


Herança para usuários do Visual Basic 6.0

A herança permite-lhe criar novas classes a partir de classes existentes.A herança pode simplificar o design do aplicativo, fornecendo uma estrutura de relacionamento entre as várias classes.Ela também suporta reutilização de código, porque somente o comportamento da classe nova ou diferente deve ser codificado.

Herança da interface

Visual Basic 6,0

Visual Basic 6.0 oferece suporte para herança da interface, abordada em mais detalhes em Interface Changes for Visual Basic 6.0 Users.

Visual Basic 2008

Visual Basic 2008 oferece suporte à interface herança com a Declaração Interface (Visual Basic) e Implementa Declaração. Para obter mais informações sobre interfaces, consulte Interfaces em Visual Basic.

Herança de implementação

Quando uma nova classe é criada através de herança de implementação, a nova classe obtém automaticamente todos os membros e implementação da classe base.A classe existente é chamada de " classe base ". A nova classe é a " classe derivada ". Membros adicionais podem ser adicionados para a classe.O comportamento da classe base pode ser alterado escrevendo-se código na nova classe.Essa técnica é chamada overriding.

Você pode criar classes por herança de classes que você criou, de classes referenciadas que você adicionar ao seu projeto ou de objetos no .NET Framework. Muitas classes do .NET Framework são relacionadas pela herança. Por exemplo, a TextBox classe herda a partir do System.Windows.Forms.TextBoxBase classe.

Visual Basic 6,0

O Visual Basic 6.0 não oferece suporte para herança de implementação.

Visual Basic 2008

A herança é declarada no Visual Basic 2008 com o Inherits demonstrativo. Neste exemplo, a classe derivada Oak herda de uma classe base Tree.

Public Class Oak
    Inherits Tree
    ' Add code here to extend or 
    ' modify the behavior of the Tree class.
End Class

MustInherit e NotInheritable

Visual Basic 6,0

Em herança da interface no Visual Basic 6.0, qualquer classe pode atuar como uma classe base de interface.Não há nenhuma sintaxe que impeça qualquer classe de atuar como uma classe base de interface.Da mesma forma, não há nenhuma sintaxe que exija que uma classe atue somente como uma classe base de interface.

Visual Basic 2008

Juntamente com herança de implementação, Visual Basic 2008 define dois modificadores de classe MustInherit e NotInheritable. Esses modificadores permitem ao programador controlar os relacionamentos de herança em um aplicativo.

The MustInherit modificador em uma declaração de classe indica uma classe que não pode ser instanciada:

Public MustInherit Class BaseClass
End Class

Isso significa que BaseClass não pode aparecer após a New palavra-chave. Somente classes que herdam de BaseClass e que também não têm o MustInherit modificador pode ser instanciado. Em literatura orientada a objeto e em Outros linguagens orientadas a objeto, um MustInherit classe é chamada de um Resumo classe.Uma classe que não é um MustInherit classe, uma que pode ser instanciada, é chamado uma concreto classe.

Um conceito relacionado é o de classe lacrada, uma classe que não pode servir como uma classe base.The NotInheritable palavra-chave em uma definição de classe indica esse status:

Public NotInheritable Class DerivedClass
End Class

A NotInheritable classe marca a borda de uma hierarquia de herança.

Para obter mais informações, consulte A herança no Visual Basic.

Sugestões de atualização

Classes atuando sistema autônomo interfaces no Visual Basic 6.0 são atualizados para sistema autônomo interfaces Visual Basic 2008. Considere este exemplo de uma classe base e de uma classe derivada do Visual Basic 6.0:

' Contents of class BaseClass
Public Sub BaseMethod()
End Sub

' Contents of class DerivedClass
Implements BaseClass
Private Sub BaseClass_BaseMethod()
End Sub

O Assistente de atualização produz este código atualizado:

Option Strict Off
Option Explicit On
Interface _BaseClass
    Sub BaseMethod()
End Interface

Friend Class BaseClass
    Implements _BaseClass
    Public Sub BaseMethod() Implements _BaseClass.BaseMethod
    End Sub
End Class

Friend Class DerivedClass
    Implements _BaseClass
    Private Sub BaseClass_BaseMethod() Implements _BaseClass.BaseMethod
    End Sub
End Class

Usando herança em vez de interfaces, o código atualizado pode ser modificado para:

Friend Class BaseClass
    Public Sub BaseMethod()
        ' Add code here to define BaseMethod.
    End Sub
End Class

Friend Class DerivedClass
    Inherits BaseClass
End Class

Isso elimina um nível de engano, _BaseClass. Além disso, elimina uma definição de método, BaseClass_BaseMethod, pois o método é herdado da classe base e não precisará ser codificado novamente. Se o programador quisesse um comportamento diferente para a classe derivada, a BaseMethod pode ser substituído conforme mostrado:

Friend Class BaseClass
    Public Overridable Sub BaseMethod()
        ' Add code here to define BaseMethod.
    End Sub
End Class

Friend Class DerivedClass
    Inherits BaseClass
    Public Overrides Sub BaseMethod()
        ' Add code here to define behavior for DerivedClass.
    End Sub
End Class

Algumas técnicas a serem consideradas em interfaces atualizadas incluem:

  • Substituir Interface instruções com Inherits instruções.

  • Implementar a classe base como uma interface, e não como uma classe que implementa uma interface.Para obter mais informações, consulte: Interface Changes for Visual Basic 6.0 Users.

  • Implementar classes base sistema autônomo MustInherit classes.

  • Implementar classes derivadas sistema autônomo NotInheritable.

Consulte também

Outros recursos

A herança no Visual Basic

Interfaces em Visual Basic