public class TestGeometricHeirarchy { public static void main(String[] args) { Circle circle1 = new Circle(1); System.out.println("\nA circle " + circle1.toString()); System.out.println("A circle " + circle1); //same as explicit call of toString() System.out.println("The radius is " + circle1.getRadius()); System.out.println("The area is " + circle1.getArea()); System.out.println("The color is " + circle1.getColor()); if (circle1.isFilled()) System.out.println("it's filled"); else System.out.println("it's not filled"); System.out.println("The date is " + circle1.getDateCreated()); Circle circle2 = new Circle(10,"red",true); System.out.println("\nA circle " + circle2.toString()); System.out.println("A circle " + circle2); //same as explicit call of toString() System.out.println("The radius is " + circle2.getRadius()); System.out.println("The area is " + circle2.getArea()); System.out.println("The color is " + circle2.getColor()); if (circle2.isFilled()) System.out.println("it's filled"); else System.out.println("it's not filled"); System.out.println("The date is " + circle2.getDateCreated()); Circle circle3 = new Circle(10,"red",true); Circle circle4 = circle1; System.out.println("\ncircle1 = circle1? " + circle1.equals(circle1)); System.out.println("\ncircle1 = circle2? " + circle1.equals(circle2)); System.out.println("\ncircle1 = circle4? " + circle1.equals(circle4)); System.out.println("\ncircle2 = circle3? " + circle2.equals(circle3)); Rectangle rectangle1 = new Rectangle(2, 4); System.out.println("\nA rectangle " + rectangle1.toString()); System.out.println("The area is " + rectangle1.getArea()); System.out.println("The perimeter is " + rectangle1.getPerimeter()); System.out.println("The color is " + rectangle1.getColor()); if (rectangle1.isFilled()) System.out.println("it's filled"); else System.out.println("it's not filled"); System.out.println("The date is " + rectangle1.getDateCreated()); Rectangle rectangle2 = new Rectangle(20, 40, "green",true); System.out.println("\nA rectangle " + rectangle2.toString()); System.out.println("The area is " + rectangle2.getArea()); System.out.println("The perimeter is " + rectangle2.getPerimeter()); System.out.println("The color is " + rectangle2.getColor()); if (rectangle2.isFilled()) System.out.println("it's filled"); else System.out.println("it's not filled"); System.out.println("The date is " + rectangle2.getDateCreated()); Rectangle rectangle3 = new Rectangle(20,40,"red",true); Rectangle rectangle4 = rectangle1; System.out.println("\nrectangle1 = rectangle1? " + rectangle1.equals(rectangle1)); System.out.println("\nrectangle1 = rectangle2? " + rectangle1.equals(rectangle2)); System.out.println("\nrectangle1 = rectangle4? " + rectangle1.equals(rectangle4)); System.out.println("\nrectangle2 = rectangle3? " + rectangle2.equals(rectangle3)); } }