All pastes #1671594 Raw Edit

Polimorfismo

public java v1 · immutable
#1671594 ·published 2009-11-14 22:46 UTC
rendered paste body
/* * 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();	}}