public abstract class Shape implements Comparable{ private String name; public Shape(String name) { this.name = name; } public abstract double area(); public final String toString() { return name +" of area " + area(); } public final int compareTo(Shape other) { double difference = area() - other.area(); if (difference < 0) return -1; else if (difference == 0) return 0; else // difference > 0 return 1; } }