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 passo a passo mostra como utilizar herança no Visual C#.
Herança é um conceito importante orientada para objectos. Permite-lhe criar uma hierarquia de classes relacionadas e reutilizar funcionalidade definida em classes existentes.
Os exemplos seguintes, 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 seleccionados e adicionar novos membros para o novo tipo de conta.
No Solution Explorer, mude para a vista de classe (se não conseguir vê-lo, clique em Ver classe no menu Ver ). Clique com o botão direito do rato no projecto UseInheritance, aponte para Adicionar e, em seguida, clique em classe .
Nota No Visual C# .NET 2003, aponte para Adicionar e, em seguida, clique em Adicionar classe .
Na caixa de diálogo Adicionar novo item , escreva um nome de classe da conta e, em seguida, clique em Adicionar .
A classe de conta é apresentada. Repare a palavra-chave. Adicione os modificadores públicos e abstractos à classe para é semelhante ao seguinte.
Adicione os seguintes métodos à classe. A palavra-chave virtual significa que estes métodos podem ser substituídos em classes derivadas:
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);
}
Adicione o seguinte método à classe. Porque este método não está marcado como virtual, não pode ser substituída em classes derivadas. Este método proporciona a capacidade para alterar o nome do detentor da conta.
public void ChangeName(string newName)
{
this.name = newName;
}
Adicione o seguinte método à classe. A palavra-chave abstracta significa que este método tem de ser substituído em classes derivadas:
private double minBalance; // If the balance drops below minBalance,
// the bank will charge a fee on the account
Modificar o Construtor de SavingsAccount inicializar os campos na classe base desta 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
}
Adicione os seguintes métodos à classe SavingsAccount. Estes métodos de substituem os métodos virtuais herdados da classe base:
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);
}
Tem de substituir todos os métodos abstractos da classe base. Adicione o seguinte método à classe SavingsAccount:
public override double CalculateBankCharge()
{
if (balance < minBalance)
return 5.00;
else
return 0.00;
}
Definir um ponto de interrupção no início do método principal e iniciar a aplicação no depurador. Passo para cada instrução e observe os métodos são chamados durante 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
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: 307205
(http://support.microsoft.com/kb/307205/en-us/
)
Qual foi o esforço que despendeu pessoalmente para utilizar este artigo?
Muito baixo
Baixo
Moderado
Elevado
Muito elevado
Diga-nos porquê e o que podemos fazer para melhorar estas informações
Obrigado! Os seus comentários são utilizados para ajudar-nos a melhorar o conteúdo do nosso suporte. Para obter mais opções de assistência, visite a Home Page de Ajuda e Suporte.