class C0 { } class C1 extends C0 { } class C2 extends C1 { } class C3 extends C1 { } class Pair { private T first; private T second; public Pair(T x1, T x2) { first = x1; second = x2; } public void display(S head1, S head2) { System.out.println("(" + head1 + ")" + first + ", (" + head2 + ")" + second); } public > void showHigherCost(S cost1, S cost2) { S higher = cost1.compareTo(cost2) > 0 ? cost1 : cost2; if (higher == cost1) System.out.printf("More expensive: " + first + " $" + higher); else System.out.println("More expensive: " + second + " $" + higher); } } public class Main { public static void main(String[] args) { Pair p = new Pair("Orange", "Pear"); p.display("a", "b"); p.display(1, 2); p.showHigherCost(10.0, 20.0); p.display("a", "b"); p.display(1, 2); p.showHigherCost(10.0, 20.0); } } /* (a)Orange, (b)Pear (1)Orange, (2)Pear More expensive: Pear $20.0 (a)Orange, (b)Pear (1)Orange, (2)Pear More expensive: Pear $20.0 */