Interface

9 respostas
Z

galera seguinte, tem uma coisa q sempre me enrolo:
Interface x Classe Abstrata

1 - Qual a diferença ?

se tenho uma classe

class Conta {

public String getCliente(){

return cliente;

}

}

agora na interface:

interface InterConta {

String getCliente();

}

pergunta:
pra q criar o método getCliente em uma interface? pq eu jah tenho um método na classe Conta
se falam em implementar, implementar o q?

class Conta implements InterConta{

public String getCliente(){

return cliente;

}

}

q implementação eh essa? eu não criei um método na classe Conta, pra criar denovo na Interface?

9 Respostas

Leandro_Rangel_Santo

você definir o metodo na interface implica que todos que implementarem sua interfaçe terão que fazer o metodo
a diferença da interface pra classe abstrata é que na classe abstrata , você pode definir implementações tb para seus metodos ,mas a classe não poderá ser instanciada ,mesmo assim

TedLoprao

Veja bem, uma interface serve para vc consiga definir que métodos uma classe deve possuir… Por exemplo, se vc tem uma interface x e duas classes y e z. Se y e z implementam x, vc pode atribuir y e z a uma referencia da interface x e utilizar os métodos definidos nessa interface.
Veja esse exemplo:

public interface Exportavel {

   void exportar();

}

public class ExportaXML implements Exportavel {
   
   public void exportar() {
       // exporta alguma coisa em xml
   }

}

public class ExportaTXT implements Exportavel {

    public void exportar() {
       // exporta alguma coisa em TXT
    }

}

Agora em um método de uma classe qualquer vc tem:

public void exportarXXX(Exportavel ex) {
    ex.export();
}

Nesse método vc pode passar tanto um ExportaXML quanto um ExportaTXT que o método irá funcionar…

O exemplo não foi muito bom, mas foi o que me ocorreu agora!!!

Fallow

Ironlynx

Para torná-lo genérico a várias classes se necessário for.no seu exemplo,não era necessário.Mas pode ser necessário q vc queira um método comum a várias classes e a outras não…Agora sempre q vc utilizar uma interface vc terá q implementar seus métodos(interfaces são implicitamente públicas e abstratas).Isso é um “contrato” q sua classe assina com a interface(a obrigação de implementar seus métodos).Jah classes abstract forçam a primeira subclasse concreta a inplementar seus métodos abstratos(seguindo a mesma assinatura da superclasse).

O

q dizer: na interface, eu crio soh a assinatura, ou seja, soh o nome q eu defino e dentro da classe q eu implemento o método, defino o q ele vai fazer eh?

Ironlynx

q dizer: na interface, eu crio soh a assinatura, ou seja, soh o nome q eu defino e dentro da classe q eu implemento o método, defino o q ele vai fazer eh?

Sim.

dsiviotti

Pense nisso:
Uma interface Flyer (voador) que define método fly() (voar)
Duas classes de superclasses diferentes:

  • AirPlane (avião) - superclasse Vehicle (veículo)
  • Bird (pássaro) - superclasse Animal (animal)
    Tanto AirPlane quanto Vehicle devem implementar fly(), ou seja, como voar, porém são descendentes de superclasses diferentes, por isso uma classe abastrata não serviria neste caso. Uma classe abstrata comum teria que juntar coisas como combustível e por ovo, isso não é necessário. A solução mais elegante é uma interface Fly que faz com que as classes implementem voar.
M

vale relembrar que todas as variaveis em uma interface sao constantes…

O

Galera, me perdoem…mas tah difícil entender Interface, poxa…
isso eh muito complicado…
pra quem sai de VB x ASP eh brabo…

me ajudem!!!

caiofilipini

Não sei se vc já leu, mas:

http://www.guj.com.br/user.article.get.chain?page=1&article.id=123

[]'s

Criado 22 de março de 2004
Ultima resposta 25 de mar. de 2004
Respostas 9
Participantes 8