Artigo: 307222 - Última revisão: quarta-feira, 6 de Dezembro de 2006 - Revisão: 4.4

Como utilizar a herança do Visual Basic 2005 ou 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.
Para obter uma Microsoft Visual C# .NET versão deste artigo, consulte 307205  (http://support.microsoft.com/kb/307205/ ) .

Nesta página

Expandir tudo | Reduzir tudo

Sumário

Herança é um conceito importante orientada para objectos. Permite-lhe criar uma hierarquia de classes relacionadas e reutilizar funcionalidade definida em classes existentes.

Neste artigo, aprenderá a utilizar a herança do Microsoft Visual Basic 2005 ou no Microsoft Visual Basic. NET. Definirá uma classe base que contém campos e métodos para uma conta bancária genérico. Em seguida, definirá uma classe derivada que representa um determinado tipo de conta bancária. Classe derivada irá herdar os membros da classe base, substituir membros selectivos e adicionar novos membros para esse tipo de conta.

Requisitos

conhecimento prévio necessário:
  • Sintaxe do Visual Basic 2005 ou do Visual Basic .NET
  • Conceitos orientada para objectos

Criar uma nova aplicação de consola

  1. Inicie o Microsoft Visual Studio 2005 ou Microsoft Visual Studio .NET e crie um novo projecto de aplicação de consola do Visual Basic com o nome UseInheritance no computador local.
  2. No menu projecto , clique em Adicionar classe .
  3. Na caixa de diálogo Adicionar novo item , escreva Account.vb no campo nome . Clique em Abrir .

    Nota No Visual Studio 2005, clique em Adicionar em vez de Abrir .
  4. O Visual Studio .NET apresenta o ficheiro Account.vb.
  5. Guarde o projecto.

Criar uma classe base abstracta

  1. Adicionar o modificador MustInherit para a classe conta, para que a conta uma classe abstracta:
    Public MustInherit Class Account
    
    End Class
    					

Escrever código para a classe base

  1. Somar dois campos para a classe conta:
    Private Name As String       ' Only accessible in base class
    Protected Balance As Double  ' Accessible in base class and derived class
  2. Adicionar um construtor para inicializar estes 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 estes métodos podem ser substituídos em 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. Porque este método não está marcado como Overridable , não pode ser substituída em classes derivadas. Este método proporciona a capacidade para alterar o nome do detentor da conta.
    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 tem de ser substituído em classes derivadas:
    Public MustOverride Function CalculateBankCharge() As Double

Criar uma classe derivada

  1. No menu Project , clique em Adicionar classe .
  2. Na caixa de diálogo Adicionar novo item , escreva SavingsAccount.vb no campo nome . Clique em Abrir .
  3. O Visual Studio .NET apresenta o ficheiro SavingsAccount.vb.
  4. Alterar a definição de classe SavingsAccount como se segue, para que SavingsAccount herda conta (Repare que a palavra-chave Inherits deve aparecer numa nova linha):
    Public Class SavingsAccount 
       Inherits Account
    
    End Class

Escrever código para a classe derivada

  1. Adiciona um campo à classe SavingsAccount:
    Private MinBalance As Double  ' If the balance drops below MinBalance, 
                                  ' the bank will charge a fee on the account
  2. Adicionar um construtor da seguinte forma, a inicializar os campos na classe base desta 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. Estes métodos de substituem os métodos de 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. Tem de substituir todos os métodos MustOverride da 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 funciona

  1. Apresenta o código para Module1.vb na janela Vista de código.
  2. Método principal , criar um objecto SavingsAccount da seguinte forma:
    Dim sa As SavingsAccount = New SavingsAccount("Freda Smith", 100.00, 25)
    sa.Display()
  3. Adicione o seguinte código para chamar métodos pública SavingsAccount ' ou ' conta:
    sa.Credit(100)
    sa.Debit(180)
    sa.ChangeName("Freda Jones")
    sa.Display()
    Console.WriteLine("Bank charge: $" & sa.CalculateBankCharge())
    					
  4. Compilar a aplicação.
  5. No menu Debug , clique em Iniciar sem depuração para executar a aplicação. A aplicação apresenta as seguintes informações na consola:
    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. Executar a aplicação novamente, mas desta vez utilizar o depurador. Definir um ponto de interrupção no início do método principal e seleccione Iniciar menu Debug . Passo para cada instrução e observe os métodos são chamados durante a aplicação.

A informação contida neste artigo aplica-se a:
  • Microsoft Visual Basic 2005
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual Basic .NET 2002 Standard Edition
Palavras-chave: 
kbmt kbvs2005applies kbvs2005swept kbhowtomaster KB307222 KbMtpt
Tradução automáticaTradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 307222  (http://support.microsoft.com/kb/307222/en-us/ )