Problema com Override em um Polimorfismo

Fala pessoal, sou iniciante em Java e estou estudando OO.
Não consigo fazer um override no método emitirSom(), porque?

Minhas classes são: Main, Animal, Cachorro e Gato.

Main

package animais;

/**
 *
 * @author Uriel
 */
public class Main {

    /**
     * @param args the command line arguments
     */
    public static Cachorro cao;
    public static Gato gato;
    
    public static void main(String[] args) {

        emitirSom(new Cachorro("Toto", 15));
        emitirSom(new Gato("Tom", 10));
        
    }

    public static void emitirSom(Animal animal)
    {
        animal.emiteSom();
    }
}

Animal

package animais;

/**
 *
 * @author Uriel
 */
class Animal {
    protected String nome;
    protected int idade;

   
    public Animal(String nome, int idade)
    {
         this.nome = nome;
         this.idade = idade;
    }
    
    public void emiteSom()
    {
        System.out.println("Animal fazendo som");
    }
}

Cachorro

package animais;

/**
 *
 * @author Uriel
 */
class Cachorro extends Animal
{
    
    public Cachorro(String nome, int idade)
    {
        super(nome, idade);
    }

    @Override
    public void emitirSom()
    {

        System.out.println("Au Au");
    }

}

Gato

package animais;

/**
 *
 * @author Uriel
 */
class Gato extends Animal {
    
    public Gato(String nome, int idade)
    {
        super(nome, idade);
    }

    @Override
    public void emitirSom()
    {
        System.out.println("Miau");
    }
}

Porque não tenho o retorno de “miau” e “au au” para os respectivas classes na minha Main?

Abs!

por que você não deixou o método com o mesmo nome na classe pai e nas filhas…

PUTZ!!

Mil desculpas amigo.

Mas a forma que estou fazendo o polimorfismo, está ok?

O conceito é fazer que Cao e Gato se passem como Animal e emitir sons de acordo com a Classe

[quote=urieljuliatti]PUTZ!!

Mil desculpas amigo.

Mas a forma que estou fazendo o polimorfismo, está ok?

O conceito é fazer que Cao e Gato se passem como Animal e emitir sons de acordo com a Classe[/quote]

Boa noite a todos.

Acho que voce não entendeu o nosso amigo maior_abandonado.

Ele quiz dizer que o nome dos métodos nas classes filhas é “emitirSom”, totalmente diferente da classe pai (Animais) que é “emiteSom”, ou seja voce trocou o “e” pelo “ir” e neste caso nunca haverá o “Override”

Além disso este post está duplicado.