Bom, para comecar, existem 2 tipos de polimorfismo.
O primerio, e mais simples, eh o que voce descreve no
seu email. A possibilidade de escrever varios metodos
com o mesmmo nome, desde que tenham assinaturas*
diferentes. Esse tipo de policorfismo tambem eh
chamado de sobrecarga de metodo.
Um exemplo tipico desse pode ser encontrado nos
construtores. A classe String, por exemplo, pode ser
criada de 11 maneiras diferentes.
Mas essa forma de polimerfismo eh muito simples, e por
si soh nao significa muito em termos de POO.
A outra forma de polimorfismo, muito mais util, eh a
capacidade de um objeto de uma subclasse ocupar o
lugar de um objeto da super classe. E a JVM se
encarrega de executar os metodos do objeto
instanciado, independente do tipo declarado.
Exemplo.
class FormaGeometrica {
public void desenhar(){
System.out.println("Forma Geometrica");
}
}
class Triangulo extends FormaGeometrica {
public void desenhar(){
System.out.println("Triangulo");
}
}
public class Foo {
public static void main(String[] s) {
FormaGeometrica f = new Triangulo();
f.desenhar();
}
}
Quando o metodo “desenhar“ for executado em “f”, a
string “Triangulo” serah impressa, mesmo que “f” tenha
sido declarado como do tipo “FormaGeometrica”. Esse eh
o polimorfismo que tem mais valor na POO, e resolve
diversos problemas. Tambem eh chamado de “Dynamic
Binding”, “Late Binding”, “Run-time Binding” e outros
sinonimos, na literatura.
Praticamente todo bom livro de POO/Java tem uma boa
definicao de polimorfismo.
* o numero, o tipo e a ordem dos parametros de um
metodo definem sua assinatura. Porem, o tipo de
retorno de um metodo nao eh parte da assinatura, pelo
menos nao em Java ou C++.
Silvio
--- Yurion André <[EMAIL PROTECTED]> wrote:
> 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]
>
-------------------------------------------------------------------------
>
>
>
>
__________________________________________________
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]
-------------------------------------------------------------------------