package shapes; public abstract class Shape implements Comparable { private String name; public Shape(String shapeName) { name = shapeName; } abstract public double getArea(); // Provided by sub-class public String getName() { return name; } public int compareTo(Object otherObject) { double val; Shape otherShape = (Shape)otherObject; val = getArea() - otherShape.getArea(); if (val > 0) return 1; else if (val < 0) return -1; return 0; } public String toString() { return name + ":area=" + getArea(); } }