Dicas sobre .NET: Classes Sealed

NetCoders
netcoders
Published in
2 min readMar 1, 2017
classes-sealed-00b

A noção de herança representa um dos tópicos mais conhecidos dentro da Orientação a Objetos. Dando grande ênfase à questão do reaproveitamento de código, este conceito permite a implementação de variações de uma classe a partir da redefinição de alguns de seus comportamentos básicos (ou mesmo todos). Outra possibilidade também seria estender as capacidades de um tipo, adicionando a este último novas funcionalidades que não foram previstas na classe original.

No caso específico da plataforma .NET, qualquer classe pode a princípio ser herdada. Embora esta capacidade seja uma característica desejável, existem situações em que surgirá a necessidade de se evitar tal comportamento. O desenvolvimento de frameworks exemplifica bem isto, em que proibir a herança de uma classe básica será muitas vezes um pré-requisito do próprio projeto em questão (a fim de evitar o uso incorreto das estruturas existentes ou devido a alguma restrição comercial).

Considerando o uso do C# para o desenvolvimento de soluções em .NET, empregar a palavra-chave sealed na declaração de uma classe corresponde ao meio através do qual será possível impedir que outras estruturas consigam herdá-la. Na listagem a seguir está um exemplo de utilização deste recurso, em que o tipo PessoaFisica foi marcado como sealed de forma a impossibilitar a implementação de subclasses derivadas do mesmo:

[code language=”csharp”]
namespace TesteSealed
{
public sealed class PessoaFisica
{
public string CPF { get; set; }
public string RG { get; set; }
public string Nome { get; set; }
}
}
[/code]

Supondo agora a codificação de uma classe chamada FuncionarioCLT, a qual derivaria de PessoaFisica:

[code language=”csharp”]
namespace TesteSealed
{
public class FuncionarioCLT : PessoaFisica
{
public string CTPS { get; set; }
}
}
[/code]

A tentativa de implementar este novo tipo herdando de PessoaFisica resultaria em um erro, como indicado na próxima imagem:

classes-sealed-01

Concluo assim mais este post sobre C#, lembrando que informações adicionais sobre classes sealed podem ser encontradas na seção de Referências.

Espero que este conteúdo possa ter sido útil.

Até uma próxima oportunidade!

Referências

sealed (C# Reference)
https://msdn.microsoft.com/en-us/library/88c54tsw.aspx

--

--