por sidney_barros em Qui Abr 01, 2010 1:31 am
Caro amigo,
Você não postou o codigo inteiro, mas se voce fazer uma matriz Animal[] jaula = new Animal[10],conforme o polimorfimo
acredito que ira resolver.
Obs : não esqueca de verificar se a classe Animal esta no mesmo diretorio.
Estou postando meu codigo ele rodou beleza!
import java.util.Scanner;
public class Zoologico{
Animal[]jaula = new Animal[10];
// criacao de matriz Animal e entrada de dados
public void jaula(){
Scanner s = new Scanner(System.in);
for(int i = 0; i < jaula.length; i++){
System.out.print("Jaula " + (1 + i) + ": ");
String bicho = s.nextLine();
jaula[i] = Veterinario.criarAnimal(bicho);
jaula[i].setNome(bicho);
}
}
//metodo para imprimir o nome e o som do animal
public void imprimir() {
System.out.println("---------------------------------");
System.out.println("Lista de animais no Zoologico");
for(int i = 0; i < jaula.length; i++){
System.out.println("Jaula " + (1 + i)+ ": " + jaula[i].getNome());
System.out.print("Som : " );
jaula[i].setSom();
jaula[i].correr();
}
}
public static void main(String[] args){
Zoologico zoo = new Zoologico();
zoo.jaula();
zoo.imprimir();
}
}
Obs:
Metodo abaixo eu criei na classe Veterinario
eu aproveitei na classe zoo acima
metodo utilizado na entrada de dados da matriz Animal
//peguei ele no proprio exemplo do modulo7 retirando (args[]) e acrescentando Scanner
// conforme a entrada de dados ele retorna um construtor de um animal em especifico.
// metodo estatico.
public static Animal criarAnimal(String bicho){
if(bicho == null){
return new Animal();
}else if(bicho.equals("dog")){
return new Dog();
}else if(bicho.equals("cavalo")){
return new Cavalo();
}
return new Preguica();
}