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.