Polimorfismo
Significado:
Muitas Formas
É a técnica
de invocar métodos de uma superclasse que tem a mesma identificação, porém com comportamento diferente especializada para aquela classe que esta sendo invocada.
Explicando melhor
Por exemplo,
suponhamos que estamos fazendo um sistema de vendas de telefone primeiro criamos a Superclasse telefone com as características
que todo telefone tem, peso, marca
,modelo etc. Porem a loja só trabalha com dois tipos de telefone celular ou
fixo, e temos a necessidade do aumento destes produtos pois a loja aumenta o
preço de tempos em tempos. Então criamos um método na Superclasse chamado
de discar, quando criamos as subclasses de cada tipo de telefone Poderemos fazer com que cada
telefone tenha seu aumento diferente do outro , criando um método nesta
subclasse do fixo ou celular, invocando o método aumento da superclasse, como fixo, por exemplo, ficaria
(fixo. aumento()) , com celular ficaria (celular. aumento()).
Como aplica-lo no Java.
Agora vamos
aplica-lo no Java suponhamos que o fixo tem 10% de aumento e o celular tenha 5%
de aumento. com base no diagrama abaixo
vamos programa-lo no Java.
Criamos o
método de aumento na superclasse e depois nas subclasses chamamos o método e
passamos neste método o quanto que cada produto vai aumentar.
O polimorfismo e uma ação
realizada de uma forma diferente como foi feito nas classes anteriores o método
aumento foi usado em diferentes classes dando o aumento certo para cada
produto.
No
que Facilita a vida do programador
Como visto na programação em
Java ou em qualquer outro tipo de linguagem orientada a objeto, o polimorfismo
facilita a utilização do mesmo método com mais de uma forma, em mais de uma
classe.
O polimorfismo facilita
entendimento do código e o deixa mais limpo, em outras palavras o
polimorfismo tem o objetivo de reutilização de código, que traz também maior
agilidade na manutenção do sistema.
Um exemplo da facilidade do
polimorfismo seria se tivéssemos um software com muitas classes, para utilizar
um mesmo método para todas estas classes com um comportamento diferente
teríamos que nomear estes métodos com nomes diferentes, se o softwares
necessitar de 30 classes diferentes utilizando o mesmo método com
comportamentos diferentes teríamos 30 métodos nomeados diferentemente e a
manutenção deste software seria bem mais complexa.
Parte do site onde aborda este assunto
Site: www.javaprogressivo.net
Imagine que você é o criador do joguinho Colheita feliz ou Fazenda Feliz (sei lá), onde terá vários bichos nesse jogo. Como você é esperto, vai logo abstrair e criar uma classe "Animal" com as características que todos tem: idade, peso, espécie etc. Porém, nesse game, os animais fazem seu som característico: o cachorro late, o gato mia, o pinto pia, a vaca muge etc. E aí? Como criar um método na superclasse que sirva para todos estes animais? Ora, não cria, pois cada animal age diferente nesse aspecto. Veja, polimorfismo é isso: embora objetos sejam da mesma superclasse, vão agir de maneira diferente em algum aspecto. Ou seja, terão várias(poli) formas diferentes (morfismo).
A saída é criar um método chamado "som()" na superclasse (só o cabeçalho, como veremos nos próximos tutoriais) e em cada subclasse criar um método diferente, que caracterize cada bicho.
Veja que se não fizessemos isso e invocassemos os métodos: vaca.som(), cachorro.som(), gato.som(), todos iriam fazer o mesmo barulho. Com o polimorfismo: vaca.som() faria a vaquinha mugir, cachorro.som() faria o cachorro latir e gato.som() faria o objeto miar. Porém, todos continuam sendo, também, objetos da classe "Animal". E quando chegar mais animais na sua fazenda, adicione o método som() nesse animal, de modo que ele poderá agir conforme suas características.
Exercício Pratico
1-Com este mesmo assunto abordado
neste exemplo, faça o polimorfismo de desconto no preço de 3% para telefone e
4% no celular.
2: Crie a classe Imóvel, que possui um
endereço e um preço.
a. crie uma classe Novo, que
herda Imóvel e possui um adicional no preço.
b. crie uma classe Velho, que
herda Imóvel e possui um desconto no preço.
Exercicio Teórico
O que você entende por polimorfismo?
R: polimorfismo é a maneira de utilizar o mesmo método em mais de um classe
de uma maneira diferente.
Dos objetos abaixo separe em
grupos aqueles que possuem “métodos” em comum, mas que são executados de forma
diferente que apresentam polimorfismo entre eles.
R:Homem, canguru, aranha e coelho
andam de maneiras diferentes.
Carro, avião, barco,
transportam
Computador e calculadora
realizam cálculos
Avião e borboleta voam
Link
do vídeo
Referencia
http://www.javaprogressivo.net/2012/10/Polimorfismo-em-Java--o-que-e-pra-que-serve-como-e-onde-usar.html
Tecnicamente ok, muito bom. Mas olhem o tópico e revejam os alinhamentos, acentuações, isso também é muito importante.
ResponderExcluirabçs