//: c11:CatsAndDogs2.java // From 'Thinking in Java, 3rd ed.' (c) Bruce Eckel 200 // Available at http://www.BruceEckel.com // 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 } } ///:~