import java.io.*; import java.util.*; class NameDemo { public static void main (String [] args){ Name nm = new Name("VivekAnanda"); EnglishName en = new EnglishName("Mark", "Leon", "Gwynn"); HispanicName hn = new HispanicName("Araches","Sanches","Viccario"); /* steps 2 & 3 */ nm.print(System.out); System.out.println(); System.out.println (nm.getFormalName()); System.out.println (nm.getName()); System.out.println (nm.getInitials()); en.print(System.out); System.out.println(); System.out.println (en.getFormalName()); System.out.println (en.getName()); System.out.println (en.getInitials()); hn.print(System.out); System.out.println(); System.out.println (hn.getFormalName()); System.out.println (hn.getName()); System.out.println (hn.getInitials()); /* steps 2 & 3 */ /* step 4 Name n = (Name)en; System.out.println(en.getMiddleName()); //line A System.out.println(n.getMiddleName()); // line B step 4 */ /* step 5 ArrayList names = new ArrayList(); names.add(nm); names.add(en); names.add(hn); print(names); step 5 */ } // end main /* step 5 public static void print(ArrayList al) { Iterator iter = al.iterator(); while (iter.hasNext()) { ? n = (?)iter.next(); //step 5, line A n.print(System.out); } } step 5 */ } // end Namedemo