using System;
using System.Collections.Generic;
using System.Text;

namespace OOP_Vererbung
{
    class Program
    {
        static void Main(string[] args)
        {
            // zum Testen erzeuge von jeder Klasse ein Objekt an Punkt (-10, 10) und gebe es aus
            Console.WriteLine("");
            Point p1 = new Point(-10, 10);
            Point p2 = new Point(-10, -10);
            Point p3 = new Point(10, 10);
            Point p4 = new Point(10, -10);

            Shape shape = new Shape(p1);
            Line line = new Line(p1, p4);
            Circle circle = new Circle(p1, 10);
            Polygon polygon = new Polygon(new Point[4] { p1, p2, p3, p4 });
            Rectangle rect = new Rectangle(p1, p2, p3, p4);
            Square square = new Square(p1, 20);

            // Ausgabe der Referenzpunkte der Shape-Objekte vor Verschiebung
            Console.WriteLine(shape);
            Console.WriteLine(line);
            Console.WriteLine(circle);
            Console.WriteLine(polygon);
            Console.WriteLine(rect);
            Console.WriteLine(square);

            shape.Move(+12, -2);
            line.Move(+13, -3);
            circle.Move(+14, -4);
            polygon.Move(+15, -5);
            rect.Move(+16, -6);
            square.Move(+17, -7);

            // Ausgabe der Referenzpunkte der Shape-Objekte nach Verschiebung
            Console.WriteLine(shape);
            Console.WriteLine(line);
            Console.WriteLine(circle);
            Console.WriteLine(polygon);
            Console.WriteLine(rect);
            Console.WriteLine(square);

        }
    }
}
