IRONSOFTWAREHOME
ATUALIZAÇÕES DO DESENVOLVEDOR

Classes seladas em C# (Como funciona para desenvolvedores)

Curtis Chau
Curtis Chau
Updated: 21 de abril de 2026

No mundo da programação orientada a objetos, a linguagem C# oferece aos desenvolvedores um conjunto versátil de ferramentas para projetar e implementar softwares robustos. Uma dessas características que adiciona uma camada extra de controle à herança de classes é o conceito de classe selada. Classes seladas oferecem uma maneira única de restringir a hierarquia de herança, proporcionando um nível de segurança e encapsulamento que pode ser benéfico em determinados cenários. Neste artigo, vamos nos aprofundar nas complexidades das classes seladas em C# e também explorar o pacote NuGet IronPDF da Iron Software .

O que são classes seladas e métodos selados?

Classe selada: Em C#, uma classe selada é uma classe que não pode ser herdada. Ao usar a palavra-chave sealed, os desenvolvedores podem evitar que outras classes derivem ou estendam a classe selada. Essa restrição deliberada garante que a classe selada não possa ser usada como classe base para nenhuma outra classe, limitando o escopo da hierarquia de herança. Classes seladas são frequentemente empregadas quando um desenvolvedor deseja controlar e finalizar a estrutura de uma classe, impedindo modificações não intencionais por meio de herança.

Considere o seguinte exemplo:

public sealed class Animal
{
    public string Species { get; set; }

    public void MakeSound()
    {
        Console.WriteLine("Generic animal sound");
    }
}

// The following code will cause a compilation error because 'Animal' is sealed and cannot be inherited:
// public class Dog : Animal // Error: Cannot inherit from sealed class 'Animal'
// {
// }

Ao contrário das structs, que são implicitamente seladas, a classe selada deve ser declarada usando a palavra-chave sealed como mostrado acima. Neste exemplo, a classe Animal é declarada como selada, tornando impossível para qualquer outra classe herdar dela.

Método selado: Além de selar classes inteiras, o C# também permite que os desenvolvedores selem métodos individuais dentro de uma classe. Um método selado é um método que nenhuma classe derivada pode sobrescrever. Isso garante que o comportamento do método permaneça consistente em todas as subclasses, proporcionando um nível de previsibilidade na lógica da aplicação.

Para selar um método, use o modificador sealed:

public class Animal
{
    public string Species { get; set; }

    // A virtual method allows derived classes to override it.
    public virtual void MakeSound()
    {
        Console.WriteLine("Generic animal sound");
    }
}

public class Dog : Animal
{
    // The sealed override prevents further overriding of this method.
    public sealed override void MakeSound()
    {
        Console.WriteLine("Bark!");
    }
}

A palavra-chave virtual permite que o método seja sobrescrito em classes derivadas, enquanto a palavra-chave sealed impede a ação de sobrescrever o método virtual da classe base em subclasses posteriores.

Classes seladas e membros de classe: Classes seladas também podem incluir membros selados, como propriedades, métodos e eventos. Essa combinação de classe selada e membros selados garante um alto grau de controle sobre o comportamento e a estrutura da classe.

Considere o seguinte exemplo:

public sealed class ControlledClass
{
    // A sealed property that prevents overriding.
    public sealed string ControlledProperty { get; set; }

    // A method that cannot be redefined by derived classes.
    public virtual sealed void ControlledMethod()
    {
        // Method implementation
        Console.WriteLine("Executing controlled method.");
    }

    // A sealed event that cannot be subscribed to or raised by derived classes.
    public sealed event EventHandler ControlledEvent;

    // Sealed indexers, if applicable
    public sealed string this[int index]
    {
        get { return "Value"; }
        set 
        { 
            // Setter implementation 
        }
    }
}

Neste exemplo, todos os aspectos do ControlledClass são selados – a propriedade, o método, o evento e até mesmo um indexador, se aplicável. Este nível de vedação proporciona uma estrutura robusta e inalterável, ideal para cenários em que o design da classe deve permanecer fixo.

A lógica por trás das aulas seladas

Segurança do código: Classes seladas contribuem para a segurança do código, impedindo o acesso e a modificação não autorizados. Quando uma classe é selada, ela funciona como uma entidade fechada com uma interface e um comportamento bem definidos. Esse encapsulamento minimiza o risco de efeitos colaterais ou alterações indesejadas que possam comprometer a estabilidade e a segurança da base de código.

Integridade do projeto: Em bases de código ou frameworks maiores, manter a integridade do projeto é fundamental. Uma classe selada funciona como um bloco de construção fundamental com estruturas fixas, reduzindo as chances de modificações não intencionais. Isso é particularmente benéfico em cenários onde uma classe serve como componente central de um sistema e seu comportamento deve permanecer consistente em diferentes módulos.

Melhores práticas para usar classes seladas

  1. Use a classe Selada com moderação: Embora a classe Selada ofereça benefícios, eles devem ser empregados criteriosamente. O uso excessivo de classes seladas pode levar a um código rígido e menos fácil de manter.
  2. Documentar a intenção: Ao selar uma classe ou método, é crucial documentar a intenção por trás dessa decisão. Explique por que uma determinada classe é selada e quais considerações de projeto levaram a essa escolha.
  3. Considere a extensibilidade futura: Antes de selar uma classe, considere se requisitos futuros podem exigir extensibilidade. Se houver probabilidade de uma classe precisar ser estendida, selá-la pode dificultar o desenvolvimento futuro.
  4. Use métodos selados para estabilidade: Os métodos selados podem ser benéficos quando o comportamento principal de um método deve permanecer estável em diferentes subclasses. Isso pode melhorar a previsibilidade do código.
  5. Não pode ser abstrata: Uma classe selada/métodos selados não podem ser também uma classe abstrata/métodos abstratos, pois as classes abstratas são projetadas para serem herdadas por outras classes, enquanto as classes seladas restringem a herança.

Apresentando o IronPDF

Classe Selada C# (Como Funciona para Desenvolvedores): Figura 1 - Página web do IronPDF

IronPDF é uma biblioteca C# para PDF da Iron Software , sendo um gerador e leitor de PDF moderno.

Instalação

O IronPDF pode ser instalado usando o console do Gerenciador de Pacotes NuGet ou o gerenciador de pacotes do Visual Studio. Abaixo está o comando para o console:

PM > Install-Package IronPdf

Ou, para instalar o IronPDF usando o Gerenciador de Pacotes NuGet, pesquise "IronPDF" na barra de pesquisa do Gerenciador de Pacotes NuGet.

Classe Selada C# (Como Funciona para Desenvolvedores): Figura 2 - Instalando a biblioteca IronPDF através do gerenciador de pacotes NuGet

IronPDF e Classes Seladas

Em conjunto, a palavra-chave sealed e o IronPDF podem ser usados ​​para impedir que uma biblioteca de subclasse ou uma biblioteca derivada sobrescreva membros herdados e também para gerar PDFs.

namespace OrderBy
{
    public class Program
    {
        static void Main()
        {
            Console.WriteLine("Demo Sealed Class and IronPdf");
            var dog = new Dog();
            dog.MakeSound();
            dog.Print();
        }
    }

    // Base class
    public class Animal
    {
        public string Species { get; set; }

        public virtual void MakeSound()
        {
            Console.WriteLine("Generic animal sound");
        }

        public virtual void Print()
        {
            Console.WriteLine("Generic animal Print");
        }
    }

    public class Dog : Animal
    {
        // Sealed override ensures method cannot be overridden in further derived classes.
        public sealed override void MakeSound()
        {
            Console.WriteLine("Bark!");
        }

        public sealed override void Print()
        {
            var pdfRenderer = new ChromePdfRenderer();
            string content = @"
            <!DOCTYPE html>
            <html>
            <body>
                <h1>Hello, Dog!</h1>
                <p>This is Print from Derived class.</p>
                <p>Print Animal Dog</p>
                <p>Print Animal Sound: Bark</p>
            </body>
            </html>";
            
            pdfRenderer.RenderHtmlAsPdf(content).SaveAs("dog.pdf");
        }
    }
}

Classe Selada C# (Como Funciona para Desenvolvedores): Figura 3 - Saída do console, mostrando o comando de execução e quaisquer mensagens de console resultantes

Abaixo está o PDF gerado pelo IronPDF.

Classe Selada C# (Como Funciona para Desenvolvedores): Figura 4 - PDF gerado com o exemplo de código anterior

Licenciamento (Teste Gratuito Disponível)

IronPDF . Essa chave precisa ser inserida no arquivo appsettings.json.

{
    "IronPdf.LicenseKey": "your license key"
}
JSON

Forneça seu e-mail para obter uma licença de avaliação.

Conclusão

As classes seladas em C# oferecem aos desenvolvedores um mecanismo poderoso para controlar a hierarquia de herança e garantir que determinadas classes e seus membros não possam ser estendidos ou sobrescritos. Embora o uso de classes seladas deva ser cuidadosamente considerado, elas fornecem um meio eficaz de encapsular funcionalidades e evitar modificações não intencionais. Ao compreender o conceito de classes e métodos selados, os desenvolvedores podem tomar decisões informadas sobre quando e onde aplicar essa restrição, contribuindo para a criação de sistemas de software sustentáveis, seguros e previsíveis. Juntamente com o IronPDF, também podemos imprimir documentos PDF.

Curtis Chau
Redator Técnico

Curtis Chau é bacharel em Ciência da Computação (Universidade Carleton) e se especializa em desenvolvimento front-end, com experiência em Node.js, TypeScript, JavaScript e React. Apaixonado por criar interfaces de usuário intuitivas e esteticamente agradáveis, Curtis gosta de trabalhar com frameworks modernos e criar manuais bem estruturados e visualmente atraentes.

...
Leia mais

Artigos relacionados

Key in blue circle

Obtenha sua chave de avaliação gratuita de 30 dias instantaneamente.

Your trial license will be sent to your email address

Sem limitações. 100% desbloqueado. Sem cartão de crédito.

bullet_checkedNão é necessário cartão de crédito nem criação de conta.Sem limitações. 100% desbloqueado. Sem cartão de crédito.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Agende sua demonstração ao vivo gratuita.
Booking Badge

Aprovado por milhões de engenheiros em todo o mundo.

Logotipos dos clientes da Iron Software
Agende sua consulta sem compromisso.
Preencha o formulário abaixo ou envie um e-mail para sales@ironsoftware.com
Os seus dados serão sempre mantidos em sigilo.
Aprovado por milhões de engenheiros em todo o mundo.
Logotipos dos clientes da Iron Software
Obtenha sua chave de avaliação gratuita de 30 dias instantaneamente.
Não é necessário cartão de crédito nem criação de conta.