Abstrato e Sealed classes e membros de classe (guia de programação C#)

The Resumo palavra-chave permite a criar de classes e classe membros que estão incompletos e devem ser implementados em uma classe derivada.

The selado palavra-chave permite que você impeça a herança de uma classe ou determinados membros da classe que foram marcados anteriormente virtual.

Classes abstratas e membros de classe

Classes podem ser declarados sistema autônomo abstrato, colocando a palavra-chave abstract antes da definição de classe. Por exemplo:

public abstract class A
{
    // Class members here.
}

Uma classe abstrata não pode ser instanciada.A finalidade de uma classe abstrata é fornecer uma definição comum de uma classe base que podem ser compartilhados por várias classes derivadas.Por exemplo, uma biblioteca de classes pode defina uma classe abstrata que é usada sistema autônomo um parâmetro para muitas das suas funções e requerem sistema autônomo programadores que usam essa biblioteca para fornecer sua própria implementação da classe, criando uma classe derivada.

Classes abstratas também podem definir métodos abstratos.Isso é conseguido adicionando a palavra-chave abstract antes do tipo de retorno do método. Por exemplo:

public abstract class A
{
    public abstract void DoWork(int i);
}

Métodos abstratos não tem nenhuma implementação, portanto, a definição do método é seguida por um ponto-e-vírgula em vez de um bloco de método normal.Classes derivadas da classe abstrata devem implementar todos os métodos abstratos.Quando uma classe abstrata herda um método virtual de uma classe base, a classe abstrata pode substituir o método virtual com um método abstrato.Por exemplo:

// compile with: /target:library
public class D
{
    public virtual void DoWork(int i)
    {
        // Original implementation.
    }
}

public abstract class E : D
{
    public abstract override void DoWork(int i);
}

public class F : E
{
    public override void DoWork(int i)
    {
        // New implementation.
    }
}

If a virtual método é declarado abstract, é ainda virtual para qualquer classe herdadas da classe abstrata. Não é uma classe que herda um método abstrato acesso a implementação original do método — no exemplo anterior, DoWork na classe F não é possível chamar DoWork na classe D. Dessa forma, uma classe abstrata pode forçar a classes derivadas para fornecer novas implementações de método para métodos virtual.

Classes seladas e membros de classe

Classes podem ser declarados sistema autônomo selado inserindo a palavra-chave sealed antes da definição de classe. Por exemplo:

public sealed class D
{
    // Class members here.
}

Uma classe selada não pode ser usada sistema autônomo uma classe base.Por esse motivo, ele também não pode ser uma classe abstrata.Classes seladas impedem derivação.Porque eles nunca podem ser usados sistema autônomo uma classe base, algumas otimizações de time de execução podem tornar membros de classe sealed chamada ligeiramente mais rápidos.

Um membro da classe, método, campo, propriedade ou evento, em uma classe derivada está substituindo um membro da classe base virtual pode declarar esse membro sistema autônomo sealed.Isso elimina o aspecto virtual do membro para qualquer classe derivada ainda mais.Isso é realizado ao colocar o sealed palavra-chave antes da Substituir palavra-chave na declaração de membro da classe.Por exemplo:

public class D : C
{
    public sealed override void DoWork() { }
}

Consulte também

Tarefas

Como: Definir propriedades abstratas (guia de programação translation from VPE for Csharp)

Conceitos

Guia de Programação C#

Referência

Classes e estruturas (guia de programação translation from VPE for Csharp)

Herança (Guia de programação C#)

Métodos (Guia de programação do C#)

Campos (guia de programação translation from VPE for Csharp)