Polimorfismo de Sobreposição

Polimorfismo de sobreposição é a redefinição de métodos em classes descendentes. Ou seja, um método de uma classe filha com o mesmo nome de um método de uma classe mãe irá sobrepor esse último. Vejamos o exemplo da Figura 4.

Como pode ser observado na hierarquia de classes apresentada, existe: (i) uma classeA, que implementa um metodoX(); (ii) uma classeB, que implementa um método com o mesmo nome; e, finalmente, (iii) uma classeC, que implementa um métodoY().

Sobreposição de métodos em uma hierarquia de herança

O que aconteceria se fosse solicitado ao Objeto1 da classeC a execução do metodoX()?

Conforme você viu nas aulas anteriores sobre herança, esse método será procurado na hierarquia da classe instanciada pelo Objeto1.

Devemos observar que, nesse caso, o métodoX() que também é implementado na ClasseB, foi encontrado primeiro que o metodoX() da ClasseA.

Nesse caso, o método que de fato será executado será o da ClasseB.

E, nesse caso, o metodoX() da ClasseA jamais será alcançado, a menos que seja criado um objeto da ClasseA. Dizemos então que ocorreu uma SOBREPOSIÇÃO DE MÉTODO ou um POLIMORFISMO DE SOBREPOSIÇÃO. O métodoX da classeB sobrepôs (ou redefiniu) o método de sua classe mãe.

Versão 5.3 - Todos os Direitos reservados