ID do artigo: 307205 - Última revisão: segunda-feira, 11 de dezembro de 2006 - Revisão: 2.2

Como usar herança em Visual C#

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.

Nesta página

Expandir tudo | Recolher tudo

Sumário

Este passo a passo artigo mostra como usar herança em Visual C#.

A herança é uma concepção Object-Oriented importante. Permite que você para compilar uma hierarquia de relacionado classes, e a reutilização funcionalidade definida em classes existentes.

No seguinte exemplos, você definirá um classe base que contém campos e métodos para um genérico banco conta. Em seguida, você definirá um classe derivada que representa um tipo específico de conta bancária. A classe derivada herdarão membros do classe base, membros substituir selecionada, e adicionar novos membros para o novo tipo de conta.

Requisitos

Exigido conhecimento anterior:
  • Sintaxe C#
  • Conceitos orientada a objeto

Criar um novo aplicativo do console

  1. Iniciar Visual Studio. NET ou Microsoft Visual Studio 2005 e criar um novo console C# projeto de aplicativo nomeado UseInheritance.
  2. Salve o projeto..

Criar uma classe abstract base

  1. Em Gerenciador de Soluções, alternar para o Class View (se você não pode vi-lo, clique Exibir Classe no menu Exibir ). Clique com o botão direito do mouse o projeto UseInheritance, apontar para Adicionar , e depois clique Adicionar Classe .

    Observação : Visual C# 2005. apontar para Adicionar , e depois clique Classe .
  2. No Adicionar Assistente classe tipo C# Account. Clique na botão de opção abstrato , e depois clique Concluir .

    A classe Conta é exibida. Observe o definição de classe inclui o abstrato palavra-chave modificador:
    public abstract class Account 
    {
       
    
    }

Escrever código para a classe base

  1. Na janela Code View, adicionar dois campos para a classe Conta para representar a equilibrar conta e o nome da conta reservado do:
    private string name;        // Only accessible in base class
    protected double balance;   // Accessible in base class and derived class
  2. Modificar o construtor da seguinte maneira para inicializar esses campos:
    public Account(string nm, double bal)
    {
       this.name = nm;
       this.balance = bal;
    
    }
  3. Adicione o seguinte métodos para a classe. O palavra-chave virtual significa esses métodos podem ser substituídos em derivado classes:
    public virtual void Credit(double amount)
    {
       this.balance += amount;
    }
    
    public virtual void Debit(double amount)
    {
       this.balance -= amount;
    }
    
    public virtual void Display()
    {
       Console.WriteLine("Name={0}, balance={1}", this.name, this.balance);
    
    }
  4. Adicione o seguinte método para a classe. Porque esse método não está marcado como virtual, ele não pode ser substituído em derivado classes. Este método fornece a funcionalidade para alteração o nome da conta reservado do.
    public void ChangeName(string newName)
    {
       this.name = newName;
    
    }
  5. Adicione o seguinte método para a classe. O abstrato palavra-chave significa este método deve ser substituído em derivado classes:
    public abstract double CalculateBankCharge();

Criar uma classe Derived

  1. No modo de exibição de classe , clique com o botão direito do mouse o projeto UseInheritance. Sobre o menu de atalho , escolher Adicionar e depois clique Adicionar Classe .
  2. No Adicionar Assistente classe tipo C# SavingsAccounte depois clique Concluir .
  3. Exibir a codificar para a classe SavingsAccount.
  4. Altere o definição de classe SavingsAccount da seguinte maneira, para que SavingsAccount herda de conta:
    public class SavingsAccount : Account
    {
       
    
    }

Escrever código para a classe Derived

  1. Adicionar um campo à classe SavingsAccount:
    private double minBalance;   // If the balance drops below minBalance, 
                                 // the bank will charge a fee on the account
  2. Modificar o construtor SavingsAccount para inicializar os campos no classe base e nesta classe:
    public SavingsAccount(string nm, double bal, double min) 
       : base(nm, bal)           // Call base-class constructor first
    {
       minBalance = min;         // Then initialize fields in this class
    
    }
  3. Adicione o seguinte métodos para a classe SavingsAccount. Esses substituir métodos de métodos virtuais a classe base herdados:
    public override void Debit(double amount)
    {
       if (amount <= balance)    // Use balance, inherited from base class
          base.Debit(amount);    // Call Debit, inherited from base class 
    }
    public override void Display()
    {
       base.Display();          // Call Display, inherited from base class
       Console.WriteLine("$5 charge if balance goes below ${0}", minBalance);
    
    }
  4. Você deve substituir abstrato todos os métodos do classe base. Adicione o seguinte método para a classe SavingsAccount:
    public override double CalculateBankCharge()
    {
       if (balance < minBalance)
          return 5.00;
       else
          return 0.00;
    
    }

Verificar IT Works

  1. Exibir a codificar para Class1.cs na janela Code View.
  2. No método principal , crie um objeto SavingsAccount e exibi-lo da seguinte maneira:
    SavingsAccount sa = new SavingsAccount("Freda Smith", 100.00, 25);
    sa.Display();
  3. Adicione o seguinte codificar para chamar métodos públicos em SavingsAccount ou conta:
    sa.Credit(100);
    sa.Debit(180);
    sa.ChangeName("Freda Jones");
    sa.Display();
    Console.WriteLine("Bank charge: ${0}",  sa.CalculateBankCharge());
  4. Criar o aplicativo.
  5. Definir um ponto de interrupção na iniciar do método principal , e iniciar o aplicativo no depurador. Etapa para cada declaração, e observar os métodos são chamado durante o aplicativo. O aplicativo exibe a seguinte informações sobre o 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

A informação contida neste artigo aplica-se a:
  • Microsoft Visual C# 2005
  • Microsoft Visual C# .NET 2002 Standard Edition
Palavras-chave: 
kbhowtomaster KB307205 KbMtpt kbmt
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 traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Caso tenha encontrado erros neste artigo e queira colaborar no processo de aperfeiçoamento desta ferramenta, por favor preencha o formulário existente na parte inferior desta página. Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 307205  (http://support.microsoft.com/kb/307205/en-us/ )