import java.util.List;
import java.util.LinkedList;

class Animal {
  public void eat() { System.out.println(this + " is eating"); }
  public String toString () { return "Animal"; }
}

class Mammal extends Animal {
  public void suckMilk() { System.out.println(this + " is sucking"); }
  public String toString () { return "Mammal"; }
}

class Dog extends Mammal {
  public void bark() { System.out.println(this + " is barking"); }
  public String toString () { return "Dog"; }
}

public class Zoo {
  public static void feedAll(List<Animal> animals) {
    for (Animal a: animals) {
      a.eat();
    }
    animals.add(new Animal());
  }

  public static void main(String a[]) {
    List<Dog> dogs = new LinkedList<Dog>();
    dogs.add(new Dog());
    dogs.add(new Dog());
    dogs.add(new Dog());
    feedAll(dogs);
  }
}
