/* * Animal.java * * Criado em 14 de novembro de 2009, 20:23 */package samples;/** * A classe <code>Animal</code> é abstrata e serve de base para outras classes. * * @author João Henrique * */public abstract class Animal { private String nome; private int idade; public Animal(String nome, int idade) { setNome(nome); setIdade(idade); } public abstract void som(); /** * @param nome o novo nome do animal */ public void setNome(String nome) { this.nome = nome; } /** * @return o nome do animal */ public String getNome() { return nome; } /** * @param idade a nova idade do animal */ public void setIdade(int idade) { this.idade = idade; } /** * @return a idade do animal */ public int getIdade() { return idade; }}/* Use outro arquivo para o código abaixo *//* * Canino.java * * Criado em 14 de novembro de 2009, 20:28 */package samples;/** * A classe <code>Canino</code> extende um <code>Animal</code> e define as * características próprias de um animal canino. * * @author João Henrique * */public class Canino extends Animal { /* * Insira as características de um animal canino. */ /** * Cria uma instância de <code>Canino</code>. * * @param nome o nome do canino * @param idade a idade do canino */ public Canino(String nome, int idade) { super(nome, idade); } /* (non-Javadoc) * @see samples.Animal#som() */ @Override public void som() { System.out.println("Au"); }}/* Use outro arquivo para o código abaixo *//* * Bovino.java * * Criado em 14 de novemnbro de 2009, 20:35 */package samples;/** * A classe <code>Bovino</code> extende um <code>Animal</code> e define as * características próprias de um animal bovino. * * @author João Henrique * */public class Bovino extends Animal { /* * Insira as características de um animal bovino. */ /** * Cria uma instância de <code>Bovino</code>. * * @param nome o nome do bovino * @param idade a idade do bovino */ public Bovino(String nome, int idade) { super(nome, idade); } /* (non-Javadoc) * @see samples.Animal#som() */ @Override public void som() { System.out.println("Mu"); }}/* Use outro arquivo para o código abaixo *//* * TestaAnimal.java * * Criado em 14 de novembro de 2009, 20:37 */package samples;/** * A classe <code>TestaAnimal</code> realiza um teste com as classes * <code>Animal</code>, <code>Canino</code> e <code>Bovino</code> usando * polimorfismo. * * @author João Henrique * */public class TestaAnimal { /** * O método <code>main</code> é o ponto de entrada de um aplicativo Java. * * @param args os argumentos da linha de comando. */ public static void main(String[] args) { Animal[] animais = new Animal[2]; // Declara um array de objetos do tipo Animal /* * Canino e Bovino extendem Animal e portanto são do mesmo tipo que Animal. * Por este motivo as linhas abaixo podem ser feitas. */ animais[0] = new Canino("Cachorro", 6); // Cria um Canino animais[1] = new Bovino("Boi", 2); // Cria um Bovino /* * Ao chamar o método som, o método correto é executado de acordo com o * tipo correto de Animal criado, Canino ou Bovino. */ animais[0].som(); animais[1].som(); }}