Muito boa a explica��o ... Tamb�m entrei na d�vida , nesse c�digo ... Sabia
que ele era o Long o problema , mas n�o sabia que o java promovia
automaticamente o int a tal - sobrescrevendo o m�todo .

On 9/26/02 11:04 AM, "Silvio L. de Morais" <[EMAIL PROTECTED]> wrote:

> Venha para a VilaBOL!
> O melhor lugar para voc� construir seu site. F�cil e gr�tis!
> http://vila.bol.com.br
> O problema eh que vc tem 2 metodos que podem atender a chamada da linha 7.
> 
> public void getParam(int i)
> e
> public void getParam(long i)
> 
> Porque isso? Porque Java promove 'int' para 'long' no momento de determinar
> qual metodo vai ser chamado, e nesse caso os dois metodos podem atender,
> logo gera a ambiguidade.
> 
> Eu gosto muito de Java (tem pago as contas por varios anos :-). Mas o fato
> de nao ser uma linguagem 100% O.O as vezes atrapalha a vida de programadores
> iniciantes. Esse eh um caso.
> 
> E observe que mesmo forcando um cast do tipo
> sub.getParam((int) i);
> nao vai funcionar, porque o compilador sempre tenta promover o "int";
> 
> Em linguagens puramente O.O. (Eifel, Smaltalk) isso nao acontece, mas ai
> aparecem outras idiossincrasias. Nao existe linguagem perfeita, ainda que
> Eiffel chegue perto.
> 
> Silvio
> 
> 
> 
> ----- Original Message -----
> From: "Fabio Pereira" <[EMAIL PROTECTED]>
> To: <[EMAIL PROTECTED]>
> Sent: Sunday, November 24, 2002 10:29 AM
> Subject: [java-list] Sobrecarga e heran�a
> 
> 
>> Pessoal,
>> 
>> me ocorreu a seguinte quest�o (copiem o c�digo para um editor para uma
>> melhor visualiza��o):
>> 
>> /*
>> Erro obtido:
>> 
>> Overload.java:7: reference to getParam is ambiguous, both method
>> getParam(int) in Base and method getParam(long) in Sub match
>> sub.getParam(i);     //Dever� chamar getParam de Base
>> 
>> 
>> Se comento a linha 7, funciona !!
>> Alguem sabe porque para a sobrecarga do m�todo getParam � ambiguo e para
>> getParam1 n�o � ??
>> */
>> 
>> public class Overload{
>> public static void main(String[] args){
>> int i=10;
>> long l = 10L;
>> 
>> Sub sub = new Sub();
>> sub.getParam(i);     //Dever� chamar getParam de Base
>> sub.getParam(l);    //Dever� chamar getParam de Sub
>> 
>> sub.getParam1(i);    //Dever� chamar getParam1 de Sub
>> sub.getParam1(l);    //Dever� chamar getParam1 de Base
>> }
>> }
>> 
>> class Base{
>> public void getParam(int i){
>> System.out.println("getParam da classe Base (parametros: int)");
>> }
>> 
>> public void getParam1(long l){
>> System.out.println("getParam1 da classe Sub (parametros: long)");
>> }
>> }
>> 
>> class Sub extends Base{
>> public void getParam(long l){
>> System.out.println("getParam da classe Sub (parametros: long)");
>> }
>> 
>> public void getParam1(int i){
>> System.out.println("getParam1 da classe Base (parametros: int)");
>> }
>> }
>> 
>> 
>> agrade�o antecipadamente,
>> 
>> Fabio Pereira
>> 
>> 
>> _________________________________________________________________
>> MSN Hotmail, o maior webmail do Brasil. 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
>> historico: http://www.mail-archive.com/java-list%40soujava.org.br
>> 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
> historico: http://www.mail-archive.com/java-list%40soujava.org.br
> 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
historico: http://www.mail-archive.com/java-list%40soujava.org.br
para sair da lista: envie email para [EMAIL PROTECTED]
-------------------------------------------------------------------------

Responder a