//: c08:CatsAndDogs2.java // From Thinking in Java, 2nd Edition // Available at http://www.BruceEckel.com // (c) Bruce Eckel 1999 // Copyright notice in Copyright.txt // Simple collection with Iterator import java.util.*; class Cat2 { private int catNumber; Cat2(int i) { catNumber = i; } void print() { System.out.println("Cat number " +catNumber); } } class Dog2 { private int dogNumber; Dog2(int i) { dogNumber = i; } void print() { System.out.println("Dog number " +dogNumber); } } public class CatsAndDogs2 { public static void main(String[] args) { ArrayList cats = new ArrayList(); for(int i = 0; i < 7; i++) cats.add(new Cat2(i)); // Not a problem to add a dog to cats: cats.add(new Dog2(7)); Iterator e = cats.iterator(); while(e.hasNext()) ((Cat2)e.next()).print(); // Dog is detected only at run-time } } ///:~