public abstract class Shape
public abstract double Area
public override string ToString()
return Id + " Area = " + string.Format("{0:F2}", Area);
public class Square : Shape
public Square(int side, string id)
public override double Area
public class Circle : Shape
public Circle(int radius, string id)
public override double Area
return myRadius * myRadius * System.Math.PI;
public class Rectangle : Shape
public Rectangle(int width, int height, string id)
public override double Area
return myWidth * myHeight;
public static void Main()
new Square(5, "Square #1"),
new Circle(3, "Circle #1"),
new Rectangle( 4, 5, "Rectangle #1")
System.Console.WriteLine("Shapes Collection");
foreach (Shape s in shapes)
System.Console.WriteLine(s);