package inter;

import java.util.*;
import java.io.*;
//----------------------------------------------------------

abstract class Animal {
	
	abstract void eat();
	
}

//----------------------------------------------------------

interface Pet {
	
	void play();
	
}

//----------------------------------------------------------

class Cat extends Animal implements Pet  {
	
	void eat() { System.out.println("The cat nibbles its food"); }
	public String toString() { return "cat"; }
	
	public void play() { System.out.println("The cat bats a ball of yarn"); }
}

//----------------------------------------------------------

class Cheetah extends Animal {
	
	void eat() { System.out.println("The cheetah tears into its food"); }
	public String toString() { return "cheetah"; }
}

//----------------------------------------------------------

public class Interface {

	
	public static void main(String[] args) {
	
		ArrayList<Animal> A = new ArrayList<Animal>();
		
		A.add(new Cat());
		A.add(new Cheetah());
		
		System.out.println(A);
		
		for (Animal a : A) {
			
			a.eat();
			
			if (a instanceof Pet)
				((Pet) a).play();
		}
	}
}

