A herança é um dos pilares da Programação Orientada a Objetos (POO) e permite que uma classe (chamada de classe filha ou subclasse) herde atributos e métodos de outra classe (chamada de classe pai ou superclasse).

Isso significa que podemos reutilizar código já existente, evitando repetição e deixando o programa mais organizado.


Exemplo prático

Vamos criar uma classe Animal e depois duas classes filhas: Cachorro e Gato.

// Classe pai
public class Animal {
    String nome;
    int idade;

    public void dormir() {
        System.out.println(nome + "dormindo");
    }
}

// Classe derivada
public class Cachorro extends Animal {
    public void latir() {
        System.out.println(nome + "Au Au");
    }
}

// Outra subclasse
public class Gato extends Animal {
    public void miar() {
        System.out.println(nome + "Miau");
    }
}