0Pricing
Java Academy · Aula

Classes abstratas

Declare classes e métodos abstratos, compreenda por que não podem ser instanciados e veja como as subclasses completam o design.

Classes abstratas é uma aula grátis de Java Academy no CoddyKit. Esta é a aula 1 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 classe abstrata?

Classe abstrata: define uma ideia comum e pode deixar alguns métodos sem corpo. Ela também pode incluir métodos normais com código. Pense nela como um modelo que exige que as subclasses preencham as lacunas.

Código: não pode ser instanciada

Classes abstratas não podem ser instanciadas diretamente. Mesmo assim, elas podem conter métodos regulares que todas as subclasses herdam.

public class Main {
  // Abstract class with one abstract method and one concrete method
  static abstract class Animal {
    abstract void speak();              // must be implemented by subclasses
    void info() {                       // concrete method allowed
      System.out.println("I am an animal.");
    }
  }

  public static void main(String[] args) {
    // Animal a = new Animal(); // Uncommenting would not compile: cannot instantiate abstract class
    System.out.println("You cannot create an Animal directly if it is abstract.");
  }
}

Por que usar classes abstratas?

Elas reúnem o código compartilhado em um só lugar e obrigam cada subclasse a fornecer os métodos importantes. Use-as quando parte do comportamento for comum, mas outra parte variar entre os tipos concretos.

Código: implementar um método abstrato

As subclasses devem implementar os métodos abstratos. Os métodos concretos da classe abstrata são herdados e podem ser reutilizados.

public class Main {
  static abstract class Animal {
    abstract void speak();
    void info() {
      System.out.println("I am an animal.");
    }
  }

  static class Dog extends Animal {
    // Must implement speak()
    void speak() {
      System.out.println("Woof!");
    }
  }

  public static void main(String[] args) {
    Dog d = new Dog();      // allowed: Dog is concrete
    d.info();               // inherited concrete method
    d.speak();              // Dog's implementation
  }
}

Regras e combinação

Regras: uma classe abstrata pode ter campos, construtores e métodos concretos. Uma subclasse só se torna concreta depois de implementar todos os métodos abstratos; caso contrário, ela também será abstrata.

Código: abstrato + polimorfismo

Classes abstratas funcionam bem com polimorfismo. O código pode usar o tipo abstrato, e cada subclasse fornece o comportamento correto.

public class Main {
  static abstract class Animal {
    abstract void speak();
  }

  static class Dog extends Animal {
    void speak() { System.out.println("Woof!"); }
  }

  static class Cat extends Animal {
    void speak() { System.out.println("Meow!"); }
  }

  public static void main(String[] args) {
    // Polymorphism through abstract base type
    Animal[] pets = { new Dog(), new Cat() };
    for (int i = 0; i < pets.length; i = i + 1) {
      pets[i].speak(); // each subclass provides its own behavior
    }
  }
}

Verificação da classe abstrata

Verificação rápida: qual afirmação sobre classes abstratas está correta?

Recapitulação

Recapitulação: use classes abstratas para compartilhar código e exigir métodos importantes. Você não pode instanciá-las diretamente, mas as subclasses completam o comportamento.

Perguntas Frequentes

A aula “Classes abstratas” é grátis?

Sim — o texto completo de “Classes abstratas” é 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 “Classes abstratas”?

Declare classes e métodos abstratos, compreenda por que não podem ser instanciados e veja como as subclasses completam o design. 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 1 de 3.

Quanto tempo leva a aula “Classes abstratas”?

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