Minicursos - Programação Orientada a Objetos

Sobreposição de Métodos


A sobreposição de métodos é um conceito bastante importante, mas que poucos tiram proveito dele. Vou explicar seu funcionamento com um exemplo, pois ficará mais fácil. Vamos imaginar que o exemplo que citamos anteriormente, no tutorial sobre herança, tenha uma alteração e que agora tenhamos 3 classes herdando da classe Pessoa, conforme ilustração abaixo:

Sobreposição de Métodos - Programação Orientada a Objetos - POO

Acrescentei a classe "Diretor", que também herda de Pessoa, mas ela precisa implementar o seu próprio método exibeDados, que é diferente do método exibeDados da classe "Pessoa". Bem, agora temos um problema, pois quando criarmos o objeto "Diretor" e chamarmos o método exibeDados, teoricamente ele pegará o método da superclasse e não nos permitirá chamar o método "local". Para permitir essa modificação no método da superclasse existe a sobreposição de métodos, que nada mais é do que permitir que façamos um método com o mesmo nome do contido na superclasse, mas com funções totalmente diferentes. A forma de fazer isso em C# é bastante fácil, vejam:

Sobreposição de Métodos - Programação Orientada a Objetos - POO

O primeiro passo é adicionar, na superclasse, a palavra virtual à sintaxe da criação do método, conforme figura acima. O segundo passo é acrescentar, na subclasse, a palavra override antes do tipo de retorno de dado no método a ser sobrescrito, vejam:

Sobreposição de Métodos - Programação Orientada a Objetos - POO

Vamos testar esse código e ver se de fato isso está acontecendo. Adicionei outro botão à aplicação. Um cria um objeto do tipo "Aluno", que é herdeiro da classe "Pessoa", e chama o método exibeDados da superclasse. O outro cria um objeto do tipo "Diretor", que também é herdeiro de "Pessoa", mas este chama um método sobreposicionado. A telinha ficou da seguinte forma:

Encapsulamento e Modificadores de Acesso

Vou clicar no botão que carrega o método da Superclasse:

Encapsulamento e Modificadores de Acesso

Agora vou dar OK e clicar no botão referente à Subclasse:

Encapsulamento e Modificadores de Acesso

Vejam que agora ele ignorou o método da superclasse e carregou o método override.

Essa é a função da sobreposição de métodos. Quando necessário, você poderá ignorar o método de uma superclasse e cria-lo de maneira diferente na subclasse.



Algumas notícias

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

Inteligência Artificial cria antibiótico super potente

Pesquisadores do MIT (EUA) identificaram um novo e poderoso composto antibiótico usando um algoritmo de aprendizado de máquina, uma técnica de inteligência artificial. Em testes de laboratório, a droga matou algumas das bactérias causadoras de doenças mais problemáticas do mundo, incluindo algu...

Ler Notícia Completa
Você gostará destes vídeos!