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