o fato não é vc ter que reimplementar, mas é vc ter a CERTEZA de que o objeto implemente aqueles métodos. Por exemplo, suponha que eu tenho uma aplicação que pode se comunicar com o mundo exterior via modem. Assim, eu teria um subsistema que era a minha aplicação (A) e outro subsistema responsável pela comunicação (M). +-----------++-------+ | || | | Aplicação || Modem | | (A) || (M) | +-----------++-------+ Suponha agora que eu defina uma interface chamada Comunicação e fizesse M implementar esta interface. interface Comunicação { public void send(String msg); public String receive(); } vou representar esta interface por '>' : +-----------++-------+ | >> | | Aplicação >> Modem | | (A) >> (M) | +-----------++-------+ até aí, nenhuma novidade, concorda ? O problema acontece é quando eu quiser substituir o Modem por uma comunicação via Renpac, por exemplo. Ora, o processo de comunicação via porta serial é bem diferente do protocolo X25. Logo, é bem provável que a forma de envio e recebimento de mensagem pela Renpac seja um pouco diferente do Modem: +-----------++--------+ | >* | | Aplicação >* Renpac | situação I | (A) >* (R) | +-----------++--------+ Mas a aplicação está esperando um método de comunicação, só que agora a forma de enviar e receber dados mudou. Conclusão, terei que alterar A para que se encaixe nos moldes de R. E isto se repetiria a cada vez que se fizesse necessário trocar o mecanismo de comunicação (TCP/IP, RMI, etc). +-----------++--------+ | ** | | Aplicação ** Renpac | | (A) ** (R) | +-----------++--------+ +-----------++--------+ | -- | | Aplicação -- TCP/IP | | (A) -- | +-----------++--------+ +-----------++--------+ | << | | Aplicação << RMI | | (A) << | +-----------++--------+ Agora, caso R (na situação I) implementasse a interface Comunicação, veja o que aconteceria: +-----------++--------+ | >> | | Aplicação >> Renpac | | (A) >> (R) | +-----------++--------+ eu não seria mais necessário fazer alterações em A. Deu pra se ter um sentimento da necessidade da definição de interfaces ? Com o uso de interfaces, minha aplicação fica no luxo de conhecer apenas a interface, e não mais precisaria conhecer os diferentes protocolos de comunicação. Caberia sim ao módulo de comunicação se virar para disponibilizar seus serviços segundo a estrutura da interface. By Alê! -----Mensagem original----- De: paulo henrique castro [mailto:[EMAIL PROTECTED]] Enviada em: sexta-feira, 6 de abril de 2001 15:55 Para: Kleber Bueno Cc: [EMAIL PROTECTED] Assunto: Re: RES: [java-list] duvida iniciante - interface Hi! >Pense assim : >Interface Dirigir >Ela tem os metodos TrocaMarcha(),Acelera(),Freia() > >Ai voce cria uma classe Carro que implementa Dirigir >Nela voce vai ter os metodos TrocaMarcha(),Acelera(),Freia() > >Ai vamos dizer que voce tambem cria a classe Moto >Voce poderia usar os mesmos metodos. essa parte ja tinha entendido.. porem, continuo nao vendo utilidade alguma!! Por que nao apenas declarar esses metodos em minhas classes Carro e Moto, ao inves de ter que colocar implements Dirigir nas duas?????? Serei obrigado a declarar todos os metodos da mesma forma!! >Depois disso voce cria uma outra classe que se chama MeiodeTransporte > >O construtor dela recebe um parametro do tipo Dirigir >Ficaria assim > >public MeiodeTransporte(Dirigir g) >{ > g.Acelera(); > g.Freia(); >} De acordo com os livros que estou lendo voce nao pode instanciar uma interface, ou seja nao posso ter um objeto 'g' do tipo Dirigir, pois dirigir e' uma interface e nao uma classe. Tenho certeza de que se nao fosse uma coisa importante a Sun nao teria "inventado" as interfaces em Java.. so' nao consigo ver um exemplo pratico para aplicacao de tal funcionalidade!! []s! PH ___________________________________________________ Paulo Henrique L. de Castro [EMAIL PROTECTED] Radio Antena 1 http://www.antena1.com.br ------------------------------ 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] -------------------------------------------------------------------------