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.


🔍 Conceitos Fundamentais

Í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.

🥷 Exemplo Naruto – Superclasse Ninja + Clãs especializados

// 🏛️ 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();
    }
}


🔥 O que acontece por trás disso?

✔️ Herança

Uzumaki e Uchiha recebem automaticamente:

✔️ Sobrescrita (Override)

A subclasse redefine um método herdado.

@Override
public void realizarJutsu() { ... }