Java · Essencial · Português · Técnico
interface
Contrato que lista métodos que uma classe se compromete a oferecer. Uma classe pode implementar várias interfaces, o que substitui a herança múltipla de classes.
Onde usar
Surge em decisões de design: 'programe para a interface, não para a implementação', como declarar List<String> em vez de ArrayList<String>.
Em código
interface Desconto {
double aplicar(double preco);
}
class Metade implements Desconto {
public double aplicar(double preco) {
return preco / 2;
}
}Exemplos
Declara o tipo como List, não ArrayList: programe para a interface.
Essa classe implementa três interfaces.
Cuidado
Não confunda com classe abstrata: a interface não guarda estado de instância e uma classe pode implementar várias delas.
Sinônimos
contrato