A palavra-chave interface
em Java é usada para declarar uma interface, que define um contrato (conjunto de métodos) que uma classe deve seguir ao implementar a interface. Uma interface não pode conter implementação de métodos (a menos que seja um método default
ou static
), apenas suas assinaturas, e todas as variáveis declaradas em uma interface são implicitamente public
, static
, e final
.
Características da Interface:
- Abstração pura: Ela especifica o que uma classe deve fazer, mas não como fazê-lo.
- Métodos abstratos: Todos os métodos de uma interface são, por padrão,
public
eabstract
, exceto métodosdefault
oustatic
. - Variáveis constantes: Todas as variáveis de uma interface são implicitamente
public
,static
, efinal
.
Sintaxe de declaração:
interface NomeDaInterface {
// Métodos abstratos (sem corpo)
void metodo1();
void metodo2();
}
Posts recentes
Implementação de uma Interface:
Uma classe pode implementar uma ou mais interfaces usando a palavra-chave implements
. A classe que implementa a interface é obrigada a fornecer a implementação de todos os métodos abstratos da interface.
interface Animal {
void fazerSom();
}
class Cachorro implements Animal {
public void fazerSom() {
System.out.println("O cachorro late.");
}
}
public class Main {
public static void main(String[] args) {
Cachorro cachorro = new Cachorro();
cachorro.fazerSom(); // Saída: O cachorro late.
}
}
Vantagens das Interfaces:
- Herança múltipla: Como Java não suporta herança múltipla de classes, uma classe pode implementar várias interfaces, permitindo a combinação de comportamentos de diversas interfaces.
- Desacoplamento: Interfaces ajudam a desacoplar o código, permitindo que as classes mudem suas implementações sem afetar os usuários da interface.
Interface com métodos default
e static
:
Desde o Java 8, as interfaces podem conter métodos com implementação, desde que sejam declarados como default
ou static
.
interface Veiculo {
void acelerar();
default void buzinar() {
System.out.println("Buzinando!");
}
static void info() {
System.out.println("Interface Veiculo.");
}
}
Resumo:
- Interface: Define métodos abstratos que devem ser implementados por classes.
- Herança: Classes podem implementar várias interfaces, permitindo herança múltipla de comportamento.
- Métodos: Métodos são
public
eabstract
por padrão, mas podem serdefault
oustatic
. - Exemplo de implementação:
class Carro implements Veiculo {}