Polimorfismo
ORIENTADA A OBJETOS
Polimorfismo
Prof. Emanoel Barreiros
Introdução ao Polimorfismo
• Suponha que desenvolvemos um programa que simule o
movimento de diferentes animais
• Este sistema é usado para estudar peixes, sapos e pássaros. Para tal, você cria as classes Peixe, Sapo e
Passaro
• Todas essas classes herdam da classe Animal, que possui um método mover() e atributos que mantém a posição de cada animal (x, y)
• Nosso sistema precisa manter um array de objetos do tipo Animal, e a cada segundo, executar o método mover() de cada um
Prof. Emanoel Barreiros
2
Introdução ao Polimorfismo
• Um peixe pode nadar 1 metro, enquanto que um pássaro
pode voar 5 metros e um salpo pode saltar 0,5 metros
• Cada objeto sabe como mover-se e atualizar a sua posição, mas o nosso sistema só deve chamar o método mover() de cada um
• O método mover é polimórfico, pois para cada objeto ele possui uma implementação diferente, inerente a cada tipo que a implementa
• Com polimorfismo podemos projetar e implementar sistemas facilmente extensíveis
• Ex: se desejarmos criar uma nova classe Formiga, as outras
classes de animais permanecem intocadas
Prof. Emanoel Barreiros
3
Exemplos de polimorfismo
• Quadilateros
• Se uma classe Retangulo extende a classe Quadrilatero, então a classe Retangulo é mais específica
• Qualquer operação (.e.g. calcular a sua área) pode ser realizada no Retangulo
• Essas operações também podem ser executadas em outros
Quadrilateros (Quadrado, Paralelogramo, Trapezio)
• O polimorfismo ocorre quando um programa invoca a execução de um método através de um objeto do tipo da superclasse e em tempo de execução, a versão correta do método na subclasse é chamada Prof. Emanoel Barreiros
4
Exemplo
• Exemplo no código!
Prof. Emanoel Barreiros
5
Classes e métodos abstratos
• Classes abstratas nunca poderão ser instanciadas
• Classes abstratas tem como objetivo