/** * This example explains bounded wildcard */ package generics; import java.util.Vector; public class SubtypeIterateDogsCorrect { static void iterateMammals(Vector ms) { for (Mammal m : ms) m.talk(); } public static void main(String[] a) { Dog d1 = new Dog(); d1.setName("Pluto"); Dog d2 = new Dog(); d2.setName("Smart"); Vector dogs = new Vector(); dogs.add(d1); dogs.add(d2); iterateMammals(dogs); } }