public class Octagon extends GeometricObject implements Cloneable, Comparable { public double side; Octagon() { side = 1; } Octagon(double inSide) { side = inSide; } public double getArea() { return (2+4/Math.sqrt(2))*side*side ; } public double getPerimeter() { return 8 * side; } public int compareTo(Object o) { if (getArea() > ((Octagon)o).getArea()) return 1; if (getArea() < ((Octagon)o).getArea()) return -1; else return 0; } public Object clone() { try { return super.clone(); } catch (CloneNotSupportedException ex) { return null; } } }