[作成手順]

1.以下のようにabstractクラスAnimalを作成する。

public abstract class Animal{
	protected String name;
	protected Animal(String name){
		this.name=name;
	}
	public abstract void cry();
}

2.以下のようにCat,Dog,Pigクラスを作成する。

class Cat extends Animal{

	public Cat(String name) {
		super(name);	
	}
	@Override
	public void cry() {
		System.out.println(this.name+"はにゃーとないた");
	}
	public void sleep(){
		System.out.println("こたつですやすや");
	}
	
}
class Dog extends Animal{

	public Dog(String name) {
		super(name);
	}

	@Override
	public void cry() {
		System.out.println(this.name+"はワンと吠えた");
	}
	
}
class Pig extends Animal{

	public Pig(String name) {
		super(name);
	}

	@Override
	public void cry() {
		System.out.println(this.name+"はぶ~とないた");
	}
}

3.アプリケーションクラスとしてAnimalAppを作成し、以下の処理を実現せよ。
ただし、3匹の動物をAnimal型の配列にいれて処理を記述すること。
[実行例]
タマはにゃーとないた
こたつですやすや
ジョンはワンと吠えた
さぶはぶ~とないた

public class AnimalApp {

	public static void main(String[] args) {
		Animal[] animals={new Cat("タマ"),new Dog("ジョン"),new Pig("さぶ")};
		for(Animal a:animals){
			a.cry();
			if(a instanceof Cat){
				((Cat)a).sleep();
			}
		}
	}
}