Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Bom dia :)
Estava eu fazendo meu percurso diário até o trabalho e meu veio uma pergunta escrota...
Lembrei que li em um livro onde o autor afirmava que Polimorfismo são várias formas de se fazer algo. Depois, ele deu um pequeno exemplo onde existia uma interface e 2 classes implementavam essa interface, onde as mesmas faziam coisas diferentes. No final de tudo, ele afirmou que dessa forma, caso no futuro eu precise alterar algo, o programa não sentirá.
E foi nessa última afirmação que me veio a dúvida... Polimorfismo não é a mesma coisa que abstração ?
(poli = muitas, morphos = formas)
http://lppsi-ufs.com/index.php/java/18-polimorfismo
http://www.caelum.com.br/apostila-java-orientacao-objetos/heranca-reescrita-e-polimorfismo/
http://forum.imasters.com.br/topic/412028-poliformismo/
Todos os tres links fala sobre polimorfismo, os dois primeiros em java e o terceiro em php mesmo...
Polimorfismo:
Abstração:
Apesar de serem usadas em conjunto, não são a mesma coisa. Abstrair, significa que você separá em contextos, contendo apenas o essencial de cada contexto. Polimorfismo é uma "capacidade", por assim dizer, aonde você tratará objetos diferentes ignorando suas diferenças.
Você precisa possuir um certo nível de abstração, nas suas classes, para utilizar polimorfismo de forma eficiente (códigos/classes "gambiarrados(as)" também podem possuir polimorfismo, mas não significa que as classes possuem um nível de abstração desejada). Mas você não necessita utilizar polimorfismo (tratar objetos diferentes de forma homogênea) para abstrair determinadas classes. Manter um bom nível de reutilização de classes/objetos também é feito através da abstração.