ID do artigo: 307222 - Última revisão: quarta-feira, 9 de abril de 2003 - Revisão: 1.0

PROCEDIMENTOS: BETA: Usar a herança no Visual Basic .NET

Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.
Este artigo foi publicado anteriormente em BR307222
Este artigo descreve uma versão beta de um produto Microsoft. Estas informações são fornecidas no estado em que se encontram e estão sujeitas a alterações sem aviso prévio.

Não existe suporte formal ao produto disponível por parte da Microsoft para este produto beta. Para obter informações sobre o suporte a uma versão beta, consulte a documentação incluída nos arquivos do produto beta ou consulte o site de onde foi feito o download da versão.

Nesta página

Expandir tudo | Recolher tudo

Sumário

A herança é um importante conceito orientado a objetos. Ela permite que você crie uma hierarquia de classes relacionadas e reutilize a funcionalidade definida nas classes existentes.

Neste artigo, você aprenderá a usar uma herança no Visual Basic .NET. Você definirá uma classe base que contenha campos e métodos para uma conta bancária genérica. Em seguida, definirá uma classe derivada que represente um determinado tipo de conta bancária. A classe derivada herdará membros da classe base, substituirá membros seletivos e adicionará novos membros para esse tipo de conta.

Requisitos

Experiência anterior exigida:
  • Sintaxe do Visual Basic .NET
  • Conceitos orientados a objetos

Criar um novo aplicativo de console

  1. Inicie o Visual Studio .NET e crie um novo projeto de aplicativo de console do Visual Basic chamado UseInheritance no computador local.
  2. Na caixa de diálogo Add New Item, digite Account.vb no campo Name. Clique em Open.
  3. O Visual Studio .NET exibirá o arquivo Account.vb. Examine esse código para se familiarizar com seu conteúdo.
  4. Salve o projeto.

Criar uma classe base abstrata

  1. No menu Project, clique em Add Class.
  2. Adicione o modificador MustInherit à classe Account, a fim de tornar Account uma classe abstrata:
    Public MustInherit Class Account
    
    End Class

Gravar código para a classe base

  1. Adicione dois campos à classe Account:
    Private Name As String       ' Only accessible in base class
    Protected Balance As Double  ' Accessible in base class and derived class
  2. Adicione um construtor para inicializar esses campos:
    Public Sub New(ByVal Nm As String, ByVal Bal As Double)
       Name = Nm
       Balance = Bal
    End Sub
  3. Adicione os seguintes métodos à classe. A palavra-chave Overridable significa que esses métodos podem ser substituídos nas classes derivadas:
    Public Overridable Sub Credit(ByVal Amount As Double)
       Balance += Amount
    End Sub
    
    Public Overridable Sub Debit(ByVal Amount As Double)
       Balance -= Amount
    End Sub
    
    Public Overridable Sub Display()
       Console.WriteLine("Name=" & Name & ", " & "Balance=" & Balance)
    End Sub
  4. Adicione o seguinte método à classe. Como este método não está marcado como Overridable, ele não pode ser substituído nas classes derivadas. Ele permite alterar o nome do correntista.
    Public Sub ChangeName(ByVal newName As String)
       Name = newName
    End Sub
  5. Adicione o seguinte método à classe. A palavra-chave MustOverride significa que este método deve ser substituído nas classes derivadas:
    Public MustOverride Function CalculateBankCharge() As Double

Criar uma classe derivada

  1. No menu Project, clique em Add Class.
  2. Na caixa de diálogo Add New Item, digite SavingsAccount.vb no campo Name. Clique em Open.
  3. O Visual Studio .NET exibirá o arquivo SavingsAccount.vb. Examine esse código para se familiarizar com seu conteúdo.
  4. Altere a definição de classe SavingsAccount da seguinte maneira, para que SavingsAccount seja herdada de Account (observe que a palavra-chave Inherits deverá aparecer em uma nova linha):
    Public Class SavingsAccount 
       Inherits Account
    
    End Class

Gravar código para a classe derivada

  1. Adicione um campo à classe SavingsAccount:
    Private MinBalance As Double  ' If the balance drops below MinBalance, 
                                  ' the bank will charge a fee on the account
  2. Adicione um construtor da seguinte maneira, a fim de inicializar os campos na classe base e nesta classe:
    Public Sub New(ByVal Nm  As String, _
                   ByVal Bal As Double, _
                   ByVal Min As Double)
       MyBase.New(Nm, Bal)        ' Call base-class constructor first
       MinBalance = Min           ' Then initialize fields in this class
    End Sub
  3. Adicione os seguintes métodos à classe SavingsAccount. Esses métodos substituem os métodos Overridable herdados da classe base:
    Public Overrides Sub Debit(Amount As Double)
       If Amount <= Balance Then  ' Use balance, inherited from base class
          MyBase.Debit(Amount)    ' Call Debit, inherited from base class
       End If
    End Sub
    
    Public Overrides Sub Display()
       MyBase.Display()           ' Call Display, inherited from base class
       Console.WriteLine("$5 charge if balance goes below $" & MinBalance)
    End Sub
  4. Você deve substituir todos os métodos MustOverride na classe base. Adicione o seguinte método à classe SavingsAccount:
    Public Overrides Function CalculateBankCharge() As Double
       If Balance < MinBalance Then
          Return 5.0
       Else
          Return 0.0
       End If
    End Function

Verificar se ele está funcionando

  1. Exiba o código do Module1.vb na janela de exibição de código.
  2. No método Main, crie um objeto SavingsAccount da seguinte maneira:
    Dim sa As SavingsAccount = New SavingsAccount("Freda Smith", 100.00, 25)
    sa.Display()
  3. Adicione o seguinte código para chamar os métodos Public em SavingsAccount ou Account:
    sa.Credit(100)
    sa.Debit(180)
    sa.ChangeName("Freda Jones")
    sa.Display()
    Console.WriteLine("Bank charge: $" & sa.CalculateBankCharge())
  4. Crie o aplicativo.
  5. No menu Debug, clique em Start Without Debugging para executar o aplicativo. Verifique se o aplicativo exibe estas informações no console:
    Name=Freda Smith, balance=100
    $5 charge if balance goes below $25
    Name=Freda Jones, balance=20
    $5 charge if balance goes below $25
    Bank charge: $5
  6. Execute o aplicativo novamente, mas desta vez use o depurador. Defina um ponto de interrupção no início do método Main e selecione Start no menu Debug. Depure cada instrução e observe quais métodos são chamados durante a aplicação.





A informação contida neste artigo aplica-se a:
  • Microsoft Visual Basic .NET 2002 Standard Edition
Palavras-chave: 
kbhowto kbhowtomaster KB307222