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 criá-lo de maneira diferente na subclasse.



Notícias - Games

Atari VCS é finalmente lançado e surpreende

O Atari VCS foi lançado recentemente e trouxe suporte a praticamente todos os serviços de streaming de jogos já disponíveis. A única exceção foi por conta do Playstation Now, cujo suporte nativo não é oferecido, mas ele pode ser acessado através do modo PC do VCS, já que o console possui Googl...

Ler Notícia Completa

Conheça o Playstation 2 portátil criado por um brasileiro

Claudio Adriano decidiu criar uma versão portátil do console Playstation 2, da Sony. Inspirado no Nintendo Switch, o console ficou pronto depois de 2 anos de trabalho e algumas interessantes adaptações. Partindo de uma placa-mãe de um PS2 Slim, Claudio fez os encaixes necessários para que a pla...

Ler Notícia Completa

PS5 com SSDs não originais apresentam ótimo resultado

A última atualização do PS5 permite que se faça a expansão do armazenamento do console. Embora o aparelho exija características específicas para os dispositivos de expansão, como taxa de leitura de 5Gb/s, ele funciona surpreendentemente bem com SSDs de velocidades inferi...

Ler Notícia Completa

Capcom Pro Tour sofre o cancelamento de algumas etapas por conta do coronavírus

Em um comunicado ao público via redes sociais, a Capcom revelou que algumas etapas do Capcom Pro Tour foram removidas do calendário como precaução contra o surto de coronavírus pelo mundo...

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!