0Pricing
Java Academy · Aula

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

  1. Classes abstratas
  2. Interfaces (introdução e comparações)
  3. Conversão para cima/baixo e instanceof
← Voltar para Java Academy