Minicursos - Programação Orientada a Objetos

Classes Seladas


As classes seladas são as mais simples e fáceis de serem compreendidas, mas nem por isso menos importantes. Imagine que você tenha uma aplicação com várias classes gerando uma hieraraquia de heranças. Existe uma Superclasse, que é herdada por Subclasse1 e também temos a Subclasse 2, que herda de Subclasse 1, conforme a figura abaixo:

Classes Seladas - Programação Orientada a Objetos - POO

Essa hierarquia, conforme ilustrada na figura acima, poderia não ter fim, já que poderíamos criar uma Subclasse 3, que herdaria de Subclasse 2 e assim por diante. Bem, mas imagine que você queira impedir isso, fazendo com que determinada classe não possa ser herdada, ou seja, você tem a chamada “classe pronta”, que por não ser herdada também não aceitará a sobrescrita de métodos. Bem, para proteger sua classe contra novas operações de herança é que o tipo de classe selada é usada. Eu criei a mesma estrutura de classes da imagem acima:

Classes Seladas - Programação Orientada a Objetos - POO

Agora vou selar a Superclasse para impedir que a Subclasse1 herde dela, vejam como a sintaxe é simples:

Classes Seladas - Programação Orientada a Objetos - POO

Vou tentar compilar essa aplicação, já que a Subclasse1 herdava dela e a Subclasse2 herdava de Subclasse1:

Classes Seladas - Programação Orientada a Objetos - POO

Vejam que não foi possível e um erro de compilação surgiu.

Essa mesma lógica poderia valer para um método, ou seja, podemos permitir que uma classe seja herdada e impedir que um método seja sobrescrito, ou seja, podemos impedir que façam override em métodos. A única observação é que eles já precisam ser sobrescritos, ou seja, precisam estar presentes em alguma subclasse. Vou demonstrar com exemplos. A Subclasse1 também possui o método calculaPrecoParcelado, sobrescrito da Superclasse, vejam:

Classes Seladas - Programação Orientada a Objetos - POO

Ela está herdando de Superclasse e efetuando o override no método calculaPrecoParcelado.

Classes Seladas - Programação Orientada a Objetos - POO

Agora vamos selar o método calculaPrecoParcelado em Subclasse1, para impedir que Subclasse2 possa sobrescrevê-lo.

Classes Seladas - Programação Orientada a Objetos - POO

Agora vou tentar compilar a aplicação:

Classes Seladas - Programação Orientada a Objetos - POO

Agora o método calculaPrecoParcelado, presente em Subclasse1 está selado, ou seja, impedido de ser modificado por uma subclasse, que no caso é a Subclasse2.

Essa é a função das classes e métodos selados. Simples, mas muito importante!



Algumas notícias

Xiaomi vende 52,9 milhões de celulares no segundo trimestre de 2021 e faturamento dispara

A gigante chinesa Xiaomi registrou um aumento de quase 85% no seu faturamento no segundo trimestre de 2021 em comparação ao mesmo período do ano passado. A receita divulgada pela empresa foi de 13,5 bilhões de dólares (algo em torno de 70 bilhões de reais) nos meses de abril a junho deste ano...

Ler Notícia Completa

Galaxy S9 e Galaxy S9 Plus receberão atualização de segurança este mês

A Samsung começou a liberar esta semana, para proprietários dos modelos Galaxy S9 e Galaxy S9 Plus, uma nova atualização de segurança. Por enquanto somente alguns países da Europa receberam o pacote, que deve ser dis...

Ler Notícia Completa

Novas câmeras 'debaixo da tela' da Oppo surpreendem

Para muitos, colocar uma câmera embaixo da tela de um celular era uma tarefa impensável, por conta de diversos problemas técnicos. Os primeiros testes da Oppo que se propuseram a isso geravam imagens de qualidade bastante insatisfatória, já que a captação da luz era prejudicada pela tela. A prim...

Ler Notícia Completa

As memórias DDR5 estão chegando e trarão muitas melhorias

A próxima geração de memórias RAM já possui especificações definidas e promete grande melhoria em relação às atuais DDR4. E o mais importante: mesmo com desempenho bastante superior, elas consumirão menos energia. A tensão de trabalho das memórias DDR5 será de apenas 1.1V contra os 1.2V das atu...

Ler Notícia Completa

Google Chrome consumirá menos memória RAM em breve

O navegador da gigante de buscas da Internet é, sem dúvida, um dos melhores disponíveis, mas é inegável que o consumo de memória RAM por parte dele é exagerado. Este problema já se estende por anos, mas parece que em breve ele terá uma solução. Um novo recurso do Windows 10, chamado SegmentHeap...

Ler Notícia Completa

Sites e vídeos sem propagandas? Sim, é possível através da exploração de uma falha!

Seguramente você já se deparou com sites que bloqueiam o conteúdo da página e te obrigam a assinar determinado serviço para ler o conteúdo, certo? Ou foi tentar assistir aquele vídeo e as propagandas em tela cheia não pararam de surgir. Bem, todos já nos deparamos com isso, no entanto, um bug de...

Ler Notícia Completa
Ajude o Contém Bits com um cafezinho!

Se você gostou do artigo, se ele lhe foi útil de alguma maneira e você quiser ajudar o Contém Bits, saiba que é simples, fácil e rápido. Basta clicar na imagem do PayPal (ou no cafezinho) e seguir as instruções, em ambiente seguro e com o respaldo do Paypal. Eu agradeço muito! :)


Você gostará destes vídeos!