A herança é um dos pilares da Programação Orientada a Objetos e permite criar hierarquias inteligentes de classes, reutilizando código e especializando comportamentos.
Pense em Naruto:
→ Todo ninja tem características básicas, mas cada clã tem habilidades especiais.
Isso é herança na prática.
| Ícone | Conceito | Explicação |
|---|---|---|
| 🏛️ | Superclasse | Classe base que contém atributos e métodos comuns a várias subclasses. |
| 🌱 | Subclasse | Classe que herda da superclasse e pode adicionar ou modificar comportamentos. |
| 🔗 | Herança (extends) | Permite que uma classe reutilize código da classe base. |
| 🔄 | Sobrescrita (Override) | Subclasse redefine o método para ter comportamento próprio. |
| 🧬 | Especialização | A subclasse “aprimora” ou personaliza habilidades herdadas. |
// 🏛️ Superclasse genérica Ninja
class Ninja {
public void apresentar() {
System.out.println("Sou um ninja da Vila da Folha.");
}
public void realizarJutsu() {
System.out.println("Ninja usa um jutsu genérico.");
}
}
// 🌱 Subclasse Uzumaki
class Uzumaki extends Ninja {
@Override
public void realizarJutsu() {
System.out.println("Uzumaki: Rasengan!!!");
}
}
// 🌱 Subclasse Uchiha
class Uchiha extends Ninja {
@Override
public void realizarJutsu() {
System.out.println("Uchiha: Sharingan ativado!");
}
}
public class TesteHeranca {
public static void main(String[] args) {
Ninja ninja = new Ninja();
Uzumaki naruto = new Uzumaki();
Uchiha sasuke = new Uchiha();
ninja.apresentar();
ninja.realizarJutsu();
naruto.apresentar();
naruto.realizarJutsu();
sasuke.apresentar();
sasuke.realizarJutsu();
}
}
Uzumaki e Uchiha recebem automaticamente:
apresentar()realizarJutsu() (mesmo que sobrescrevam)public ou protected da classe NinjaA subclasse redefine um método herdado.
@Override
public void realizarJutsu() { ... }