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!