public class ShapesTest
{
    public static void main(String[] args)
    {
        Circle circle = new Circle();
        Rectangle rectangle = new Rectangle();
        Triangle triangle = new Triangle();

        // this is legal by inheritance
        circle.setColor("red");
        rectangle.setColor("blue");
        triangle.setColor("green");
        
        // this is legal by inheritance
        circle.setNumSides(1);
        rectangle.setNumSides(4);
        triangle.setNumSides(3);

        // set the parameters of each shape
        circle.setRadius(41.3);
        rectangle.setWidth(1);
        rectangle.setHeight(0.618);
        triangle.setBase(5);
        triangle.setHeight(5);

        // here is an example of polymorphism
        Object[] shapes = new Object[3];
        shapes[0] = circle;
        shapes[1] = rectangle;
        shapes[2] = triangle;

        for (int i = 0; i < shapes.length; i ++)
        {
            System.out.println(shapes[i].calculateArea());
        }
    }
}
