domingo, 14 de agosto de 2011

Java - Interfaces

Interfaces são contratos entre quem vai implementar e quem vai usar uma determinada classe.

Em Java, interfaces são tipos válidos, assim como as classes, mas contêm apenas constantes, assinaturas de métodos e classes aninhadas.  Não podem ser instanciadas, mas podem ser implementadas e estendidas.

API = Application Program Interface

Interfaces têm o papel de fornecer a única forma (restrita) de herança múltipla em Java.  Uma classe pode herdar de uma só outra classe, mas pode implementar múltiplas interfaces.

Definição de uma interface:

public interface GroupedInterface
       extends Interface1, Interface2, Interface3 {

    // constant declarations
    
    // base of natural logarithms
    double E = 2.718282;
 
    // method signatures
    void doSomething (int i, double x);
    int doSomethingElse(String s);
}

Observe que uma interface pode estender várias outras. Todos os campos são implicitamente públicos, estáticos e finais.  Ou seja, constantes.

Implementação de uma interface: uso da palavra reservada implements. Ver exemplo de Relatable e uma implementação.  Observar casting.

Interfaces são tipos como outros quaisquer em Java. Podem ser usadas em parâmetros, por exemplo.  Apenas objetos de classes que implementem a interface podem ser usados como variáveis do tipo dela.

Estender uma interface pode ser uma boa alternativa a modificá-la, o que seria muito impactante negativamente.

Exemplo na hierarquia Java: a interface List é implementada por ArrayList e por LinkedList.

Nenhum comentário:

Postar um comentário