Академический Документы
Профессиональный Документы
Культура Документы
Neste artigo
A palavra-chave abstract permite que voc crie classes e membros de classe que esto
incompletos e devem ser implementados em uma classe derivada.
C# Copiar
Uma classe abstrata no pode ser instanciada. A finalidade de uma classe abstrata fornecer
uma definio comum de uma classe base que pode ser compartilhada por vrias classes
derivadas. Por exemplo, uma biblioteca de classes pode definir uma classe abstrata que serve
como um parmetro para muitas de suas funes e exige que os programadores que usam
essa biblioteca forneam sua prpria implementao da classe, criando uma classe derivada.
As classes abstratas tambm podem definir mtodos abstratos. Isso realizado atravs da
adio da palavra-chave abstract antes do tipo de retorno do mtodo. Por exemplo:
C# Copiar
https://docs.microsoft.com/pt-br/dotnet/csharp/programming-guide/classes-and-structs/abstract-and-sealed-classes-and-class-members 1/3
19/09/2017 Classes e membros de classes abstract e sealed (Guia de Programao em C#) | Microsoft Docs
C# Copiar
public class F : E
{
public override void DoWork(int i)
{
// New implementation.
}
}
Se um mtodo virtual for declarado abstract , ele ainda ser virtual para qualquer classe
que herdar da classe abstrata. Uma classe que herda um mtodo abstrato no pode acessar a
implementao original do mtodo. No exemplo anterior, DoWork na classe F no pode
chamar DoWork na classe D. Dessa forma, uma classe abstrata pode forar classes derivadas
a fornecerem novas implementaes de mtodo para mtodos virtuais.
C# Copiar
https://docs.microsoft.com/pt-br/dotnet/csharp/programming-guide/classes-and-structs/abstract-and-sealed-classes-and-class-members 2/3
19/09/2017 Classes e membros de classes abstract e sealed (Guia de Programao em C#) | Microsoft Docs
Uma classe sealed no pode ser usada como uma classe base. Por esse motivo, tambm no
pode ser uma classe abstrata. As classes sealed impedem a derivao. Como elas nunca
podem ser usadas como uma classe base, algumas otimizaes em tempo de execuo
podem tornar a chamada a membros de classe sealed ligeiramente mais rpida.
C# Copiar
public class D : C
{
public sealed override void DoWork() { }
}
Consulte tambm
Guia de Programao em C#
Classes e structs
Herana
Mtodos
Campos
Como definir propriedades abstract
https://docs.microsoft.com/pt-br/dotnet/csharp/programming-guide/classes-and-structs/abstract-and-sealed-classes-and-class-members 3/3