🎯 Objetivo do Capítulo

Entender como herança permite reutilizar código em Java, facilitando a manutenção e a organização do sistema. Os alunos aprenderão a criar classes "pai" (superclasses) e "filhas" (subclasses), aproveitando atributos e métodos já existentes.


🧠 O que é Herança?

Herança é um mecanismo da Programação Orientada a Objetos que permite criar novas classes baseadas em outras já existentes. Com isso, podemos evitar repetição de código e criar estruturas mais organizadas.

Exemplo do mundo real:

Imagine uma classe Animal, e depois classes mais específicas como Cachorro, Gato, Pássaro. Todos são animais, mas têm comportamentos e características próprias.


📌 Sintaxe da Herança em Java

class SuperClasse {
    // atributos e métodos
}

class SubClasse extends SuperClasse {
    // novos atributos e métodos
}

🧪 Exemplo 1 – Criando uma Superclasse Animal e Subclasses

public class Animal {
    String nome;

    public void emitirSom() {
        System.out.println("O animal faz um som.");
    }
}
public class Cachorro extends Animal {
    public void emitirSom() {
        System.out.println("O cachorro late.");
    }
}
public class Gato extends Animal {
    public void emitirSom() {
        System.out.println("O gato mia.");
    }
}

<aside> 💡

✅ Observe como Cachorro e Gato herdam o atributo nome e o método emitirSom() da classe Animal, mas sobrescrevem o comportamento com 0.

</aside>

public class TesteAnimais {
    public static void main(String[] args) {
        Cachorro c = new Cachorro();
        Gato g = new Gato();

        c.nome = "Rex";
        g.nome = "Mimi";

        System.out.println(c.nome);
        c.emitirSom();

        System.out.println(g.nome);
        g.emitirSom();
    }
}

🧩 Palavra-chave super

A palavra-chave super é usada para:

Exemplo com super no construtor:

public class Animal {
    String nome;

    public Animal(String nome) {
        this.nome = nome;
    }
}
public class Cachorro extends Animal {
    public Cachorro(String nome) {
        super(nome);
    }
}