using System; class PointSet { IPoint[] points; // “points” can contain references of any class implementing IPoint int num; public PointSet ( int size) { points = new IPoint[size]; num = 0; } public void AddPt ( IPoint p ) { points[num++] = p; } public void PrintAll() { for(int i = 0; i < num; i++) points[i].PrintPt(); } } class TestClass { public static void Main() { PointSet s = new PointSet(5); s.AddPt(new Point2D()); s.AddPt(new Point2D()); s.AddPt(new Point3D()); s.AddPt(new Point2D()); s.AddPt(new Point3D()); s.PrintAll(); } }