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] -------------------------------------------------------------------------
