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();
    }
}
