// Employee02.java -- generic sorting using an interface

interface Sortable02 {
   public abstract boolean compare (Sortable02 b);
}

final class Sort {
   public static void sort (Sortable02 [] a) {
      int i=0,j=0;
      // ...
      a[i].compare (a[j]);
      // ...
   }
}

class Employee02 extends Object implements Sortable02 {
   public int salary;
   public boolean compare (Sortable02 b) {
      Employee02 e = (Employee02) b;
      return (salary < e.salary);
   }
   public static void main (String [] args) {
      Employee02 [] a = {};
      Sort.sort (a);
   }
}