ExpertiDict

Java · Essencial · Português · Técnico

interface

/ĩteɾˈfasi/substantivo

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

Veja também

Todos os termos de Java