Duvidas com Interfaces

3 respostas
S

Olá Pessoal…

Estou com algumas dúvidas em relação a “intefaces”. Tenho o seguinte trecho de código de um método:

private void pP(Connection tC) {
		if (getPPList() == null)
			return;
		
		for (int i = 0; i < pPList.size(); i++)
		{
			IPP pP = (IPP) pPList.get(i);
			pP.process(tC);
		}
	}

E o método process da Interface IPP:

public interface IPP 
{
	public void process(Connection connection);
}

Eu realmente não entendi o pq da seguinte linha:

pP.process(tC);

Sendo que ela chama um método que não faz nada na interface … se alguém puder me ajudar …

Abraços,

3 Respostas

P

Ele não chama o metodo da interface… ele chama o metodo da classe.

Pq, pra vc fazer o cast

IPP pP = (IPP) pPList.get(i);

a classe,Ou então, alguma super classe, dos objetos que estao na lista deve estar implementando a interface IPP.

E esta classe que implementa a interface é que possui a implementção do metodo process().

J

Polimorfismo meu caro, polimorfismo.

É semelhante a:

public inteface Carro{
   public void acelerar();
}

public class Ferrari implements Carro{
   public void acelerar(){
      System.out.println("Ferrari acelerando...");
   }
}

public class Fusca implements Carro{
   public void acelerar(){
      System.out.println("Fusca tentanto acelerar...");
   }
}

Carro c = new Ferrari();
c.acelerar();

Carro c2 = new Fusca();
c2.acelerar();

http://pt.wikipedia.org/wiki/Polimorfismo

P

http://java.sun.com/docs/books/tutorial/java/interpack/interfaceDef.html

n interface does not provide implementations for the methods declared within it.

Interface pode ser entendido como um contrato, onde as classes que quiserem implementa-la devem implementar tds os seu metodos, a não ser que a classe seja abstrata!

Uma referencia definida do tipo de um interface, podera referenciar qualquer objeto cuja classe implemente a interface. Porem, apenas os metodos definidos na interface estarão disponiveis apartir desta referencia.

Portanto, vc chama o metodo(implementação) da classe e não da interface. Ate porque interfaces não possuem implementações !!

Criado 4 de agosto de 2006
Ultima resposta 4 de ago. de 2006
Respostas 3
Participantes 3