A sintaxe para a definição de uma interface Java equivale àquela
da definição de uma classe, apenas usando a palavra chave
interface
ao invés da palavra chave class
.
Por exemplo, para definir uma Interface1
que declara um
método void met1()
a sintaxe é:
interface Interface1 { void met1(); }
A diferença entre uma classe abstrata e uma interface Java é que a interface obrigatoriamente não tem um "corpo" associado. Para que uma classe seja abstrata basta que ela seja assim declarada, mas a classe pode incluir atributos de objetos e definição de métodos, públicos ou não. Na interface, apenas métodos públicos podem ser declarados -- mas não definidos. Da mesma forma, não é possível definir atributos -- apenas constantes públicas.
Enquanto uma classe abstrata é "estendida" (palavra chave
extends
) por classes derivadas, uma interface Java é
"implementada" (palavra chave implements
) por outras classes.
© Ivan Luiz Marques Ricarte
DCA/FEEC/UNICAMP