/** an abstract class that contains an array of 
  CompareBoss objects, and implements the SortPrint
  interface; it is abstract because it provides the 
  implementation of the print() method but not the 
  sort() method */
public abstract class ArrOfBosses implements SortPrint {
  protected CompareBoss[] arrOfBosses;
  protected int numOfBosses = 0;

  public void print() {
    String suffix;

    System.out.println(heading);  // print a heading
    System.out.println();
    for (int i = 0; i < numOfBosses; i++) {
      switch ((i + 1) % 10) {
        case 1: if ((i + 1) % 100 == 11)
                  suffix = "th";
                else
                  suffix = "st";
                break;
        case 2: if ((i + 1) % 100 == 12)
                  suffix = "th";
                else
                  suffix = "nd";
                break;
        case 3: if ((i + 1) % 100 == 13)
                  suffix = "th";
                else
                  suffix = "rd";
                break;
        default: suffix = "th";
                break;
      }
      System.out.println("The " + (i+1) + suffix + " boss = " 
                         + arrOfBosses[i].toString());
    }
  }
}

