Interfaces (introdução e comparações)
Defina interfaces, implemente-as em classes e compare-as com classes abstratas. Aprenda métodos default e múltiplas implementações.
Interfaces (introdução e comparações) é uma aula grátis de Java Academy no CoddyKit. Esta é a aula 2 de 3. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Java Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Java Academy inclui 3 aulas no total.
O que é uma interface?
Interface: um contrato que lista as assinaturas de métodos que uma classe deve fornecer. Use-a para descrever uma capacidade, como Drivable ou Printable, sem fixar hierarquias de classes.
Código: implementar uma interface
As classes implementam interfaces para garantir determinados comportamentos. Você pode referenciar o objeto pelo tipo da interface e chamar os métodos declarados.
public class Main {
// Interface that declares a capability
static interface Drivable {
void drive(); // method to implement
}
// A class implements the interface
static class Car implements Drivable {
public void drive() {
System.out.println("Car is driving");
}
}
public static void main(String[] args) {
Drivable d = new Car(); // upcast to interface
d.drive(); // runs Car's method
}
}
Interfaces versus classes abstratas
Classe abstrata = relação de tipo com código compartilhado. Interface = uma capacidade que o objeto pode oferecer. Uma classe pode estender uma classe, mas implementar várias interfaces, o que mantém os projetos flexíveis e evita hierarquias profundas.
Código: método padrão
As interfaces podem ter métodos padrão com código. As classes que implementam a interface herdam automaticamente esse pequeno comportamento.
public class Main {
// Interface with a default method (has a body)
static interface Greeter {
void greet(String name);
default void sayBye() { // default provides a reusable tiny implementation
System.out.println("Bye");
}
}
static class SimpleGreeter implements Greeter {
public void greet(String name) {
System.out.println("Hello, " + name);
}
}
public static void main(String[] args) {
Greeter g = new SimpleGreeter();
g.greet("Ada");
g.sayBye(); // default method from the interface
}
}
Várias interfaces
Uma classe pode implementar várias interfaces ao mesmo tempo (por exemplo, Drivable e Maintainable). Isso modela capacidades sem impor uma cadeia fixa de superclasses.
Código: várias interfaces
Uma classe implementa as duas interfaces. Você pode tratá-la como Drivable, Maintainable ou como seu tipo concreto, dependendo do contexto.
public class Main {
static interface Drivable { void drive(); }
static interface Maintainable { void maintain(); }
static class ServiceCar implements Drivable, Maintainable {
public void drive() { System.out.println("ServiceCar driving"); }
public void maintain() { System.out.println("ServiceCar maintenance"); }
}
public static void main(String[] args) {
ServiceCar s = new ServiceCar();
s.drive();
s.maintain();
}
}
Verificação das interfaces
Verificação rápida: qual afirmação sobre interfaces em Java está correta?
Recapitulação
Recapitulação: as interfaces definem contratos de comportamento; as classes os implementam. Use padrões para pequenos trechos de código compartilhado e combine várias capacidades em uma classe quando necessário.
Perguntas Frequentes
A aula “Interfaces (introdução e comparações)” é grátis?
Sim — o texto completo de “Interfaces (introdução e comparações)” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Java Academy, atualize para CoddyKit PRO. O curso de Java Academy inclui 3 aulas no total.
O que vou aprender em “Interfaces (introdução e comparações)”?
Defina interfaces, implemente-as em classes e compare-as com classes abstratas. Aprenda métodos default e múltiplas implementações. Você pratica Java Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Java Academy?
Nenhuma experiência prévia é necessária. Java Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 3.
Quanto tempo leva a aula “Interfaces (introdução e comparações)”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Java Academy?
Sim. Cada aula de Java Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Classes abstratas
- Interfaces (introdução e comparações)
- Conversão para cima/baixo e instanceof