Na verdade, polimorfismo eh o q o Sven explicou no e-mail anterior, ou seja,
estah relacionado com o Dynamic Binding. Isso que estah explicado no e-mail
do Alexandre (embora eu jah tenha visto milhares de vezes erradamente, o q
significa q algum livro deve ter dito isso) eh o overloading, ou seja, qdo
um metodo tem diversas formas de ser chamado por causa da lista de
parametros e, por isso, pode tomar n acoes diferentes.
Vou usar o exemplo classico do livro do Bruce Eckel, Thinking in Java:
Imagine q vc tenha uma classe FormaGeometrica + ou - assim
class FormaGeometrica {
public void desenha() {
System.out.println("Nao implementado...");
}
...
...
}
Agora imagine uma subclasse assim:
class Circulo extends FormaGeometrica {
public void desenha() {
// codigo para desenhar circulo...
}
...
...
}
E outra assim:
class CirculoPreenchido extends Circulo {
public void desenha() {
super.desenha();
// codigo para preencher circulo...
}
...
...
}
Qdo vc faz:
FormaGeometrica forma = FabricaDeFormas.geraFormaAleatoria();
imagine que o metodo retorna qualquer forma geometrica registrada no sistema
(Circulo, CirculoPreenchido, FormaGeometrica e outras subclasses). Se este
metodo foi declarado como :
class FabricaDeFormas {
public static FormaGeometrica geraFormaAleatoria() {
//codigo pra gerar forma aleatoria
}
}
ele pode retornar Circulo, por exemplo, q como "extends" FormaGeometrica EH
uma FormaGeometrica.
Voltando a linha do exemplo:
FormaGeometrica forma = FabricaDeFormas.geraFormaAleatoria();
forma.desenha();
vc nao pode dizer o q este metodo ira fazer. Ele pode tanto emitir a
mensagem q nao esta implementado, como pintar um circulo ou ainda pintar um
circulo e preenche-lo. Esta eh a beleza do polimorfismo. O metodo da classe
q vc realmente retornou do geraFormaAleatoria() e q vai ser chamado. Baixe o
Thinking In Java (em ingles) do site do Bruce (www.bruceeckel.com).
Michael Nascimento Santos
Analista/Consultor
CPM Sistemas - www.cpm.com.br
>From: Alexandre Rodrigues Gomes <[EMAIL PROTECTED]>
>Reply-To: [EMAIL PROTECTED]
>To: "'[EMAIL PROTECTED]'" <[EMAIL PROTECTED]>
>Subject: RES: [java-list] Polimorfismo
>Date: Wed, 7 Mar 2001 18:01:20 -0300
>
>Andr�, por poliformismo podemos que concluir que seja algo com muitas
>formas, certo ?
>Este algo de que estamos falando s�o os m�todos, ou seja, polimorfismo � a
>propriedade para que um m�todo assuma v�rias formas.
>Por exemplo, considere um m�todo que fa�a um pesquisa por um cliente numa
>base de dados qualquer. Suponha que eu tenha a possibilidade de fazer a
>pesquisa do cliente pelo seu nome ou por seu CPF. Desta forma, ter�amos a
>necessidade de criar dois m�todos distindos:
>
>findClientByName(String name) e
>findClientByCPF(long cpf)
>
>Com o polimorfismo, isto n�o � necess�rio, o que torna sua solu��o mais
>transparente e elegante:
>
>findClient(String name) e
>findClient(long cpf)
>
>suponha tamb�m que desejamos criar um m�todo para pesquisa que fa�a a
>interse��o entre idade e naturalidade. Logo, construir�amos um m�todo com a
>seguinte assinatura:
>
>findClient(Date idade, String natural)
>
>e todos estes m�todos poderiam conviver numa mesma classe, sem problemas.
>
>By Al�!
>
>
>-----Mensagem original-----
>De: Yurion "Andr� [mailto:[EMAIL PROTECTED]]
>Enviada em: quarta-feira, 7 de mar�o de 2001 14:44
>Para: [EMAIL PROTECTED]
>Assunto: [java-list] Polimorfismo
>
>
>Caros amigos,
>
>Estou estudando POO e estou com algumas d�vidas sobre
>polimorfismo.
>A �nica coisa que sei sobre o assunto � que
>est� propriedade da OO permite que uma classe tenha
>v�rios m�todos com o mesmo nome desde de que o m�mero
>e o tipo de par�metros seja diferentes.
>Todo mundo fala que polimorfismo � s� isso!!
>Por�m queria que se poss�vel vc�s me mostrassem
>exemplos de onde e quando utilizar est� propriedade e
>o que significa realmente polimorfismo..
>Desde j� agrade�o a aten��o de todos,
>
>Andr� Yurion
>
>__________________________________________________
>Do You Yahoo!?
>Get email at your own domain with Yahoo! Mail.
>http://personal.mail.yahoo.com/
>
>------------------------------ LISTA SOUJAVA ----------------------------
>http://www.soujava.org.br - Sociedade de Usu�rios Java da Sucesu-SP
>d�vidas mais comuns: http://www.soujava.org.br/faq.htm
>regras da lista: http://www.soujava.org.br/regras.htm
>para sair da lista: envie email para [EMAIL PROTECTED]
>-------------------------------------------------------------------------
>
>------------------------------ LISTA SOUJAVA ----------------------------
>http://www.soujava.org.br - Sociedade de Usu�rios Java da Sucesu-SP
>d�vidas mais comuns: http://www.soujava.org.br/faq.htm
>regras da lista: http://www.soujava.org.br/regras.htm
>para sair da lista: envie email para [EMAIL PROTECTED]
>-------------------------------------------------------------------------
>
_________________________________________________________________________
Get Your Private, Free E-mail from MSN Hotmail at http://www.hotmail.com.
------------------------------ LISTA SOUJAVA ----------------------------
http://www.soujava.org.br - Sociedade de Usu�rios Java da Sucesu-SP
d�vidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
para sair da lista: envie email para [EMAIL PROTECTED]
-------------------------------------------------------------------------