depois de muita pesquisa...

achei esse artigo na unicamp...eh de autoria de Ivan Luiz Marques Ricarte
Ph.D Eng. de Computa��o ...tem um outro exemplo de polimorfismo.

obrigado a todos pela discussao...todos nos saimos ganhando disso...

ateh mais


Rogerio Lacerda
Consultor em Tecnologia da Informacao
Title: Programa��o Orientada a Objetos

Polimorfismo em Java

O uso de polimorfismo atrav�s da linguagem Java ser� introduzido atrav�s do seguinte exemplo:

A classe Oficina define um objeto que recebe objetos da classe Ve�culo. Para cada ve�culo recebido, a oficina executa tr�s m�todos da classe Ve�culo, que s�o:
  1. checkList(), para verificar o que precisa ser analisado no ve�culo;
  2. adjust(), para realizar os reparos e a manuten��o necess�ria; e
  3. cleanup(), para realizar procedimentos de limpeza do ve�culo.

Este trecho de c�digo ilustra a utiliza��o da classe Oficina, considerando que os m�todos acima foram definidos para Ve�culo e para todas as suas classes derivadas. Particularmente para esse exemplo, apenas as classes Automovel e Bicicleta s�o consideradas. Um poss�vel resultado da interpreta��o dessa classe �:

Veiculo Bicicleta
Bicicleta.checkList
Bicicleta.adjust
Bicicleta.cleanup
Veiculo Bicicleta
Bicicleta.checkList
Bicicleta.adjust
Bicicleta.cleanup
Veiculo Automovel
Automovel.checkList
Automovel.adjust
Automovel.cleanup
Veiculo Automovel
Automovel.checkList
Automovel.adjust
Automovel.cleanup

Alguns pontos a destacar com rela��o a esse exemplo:

Upcasting
O m�todo Oficina.proximo() realiza uma atribui��o de um objeto Autom�vel � vari�vel (refer�ncia para objeto Veiculo) v quando o valor do n�mero aleat�rio gerado � par (o resto da divis�o inteira por 2 � igual a 0). Essa atribui��o de um objeto de uma classe mais especializada para uma refer�ncia de uma classe ancestral � denominada upcast. Esse mesmo tipo de atribui��o � realizado de Bicicleta para ve�culo quando o n�mero aleat�rio gerado � �mpar.
Uso de m�todos abstratos
Apesar de m�todos da classe Ve�culo terem sido definidos, estes nunca s�o invocados nesse exemplo. (Se fossem, algo estaria errado.) Isso ilustra uma situa��o onde m�todos abstratos poderiam ser utilizados, pois a defini��o do corpo desses m�todos � de fato irrelevante. Ainda mais, se uma classe como essa s� cont�m m�todos abstratos, ela poderia ser implementada como uma interface Java.

[EMAIL PROTECTED]

Last modified: Thu Jul 08 14:08:15 Hora padr�o leste da Am. Sul 1999

Responder a