static void Main(string[] args)
        {
            // promenljive p1 i p2 su reference na objekat klase Pravougaonik

            Pravougaonik p1 = new Pravougaonik(3, 4);
            Pravougaonik p2 = new Pravougaonik(p1);

            Console.WriteLine("Obim pravougaonika p1 je: " + p1.GetO() +
                              "\nPovrsina pravougaonika p1 je: " + p1.GetP());

            Console.WriteLine("Obim pravougaonika p2 je: {0}", p2.GetO());
            Console.WriteLine("Površina pravougaonika p2 je: {0}", p2.GetP());


            Krug k = new Krug(5);

            Console.WriteLine("Obim kruga je: " + k.GetO() +
                              Environment.NewLine + "Povrsina kruga je: " + k.GetP());



            // F5 - Start debugging - zatvoriće se kozola pa se linijom ispod ovo prevazilazi
            Console.ReadLine();
            // ctrl + F5  - Start without debugging - neće se zatvoriti konzola
        }
        static void Main(string[] args)
        {
            Pravougaonik p  = new Pravougaonik(2, 3);
            Krug         k  = new Krug(4);
            Kvadrat      kv = new Kvadrat(5);


            // ToString testiranje
            Console.WriteLine(p);
            Console.WriteLine(k);
            Console.WriteLine(kv);

            // IspisiFiguru testiranje
            Console.WriteLine();
            IspisiFiguru(p);
            IspisiFiguru(k);
            IspisiFiguru(kv);


            // Virtualnost ToString i Porperty

            Console.WriteLine();
            p = kv;
            Console.WriteLine(kv);
            Console.WriteLine(p); // ToString je override/virtual
            IspisiPravougaonik(p);
            Console.WriteLine();

            p.A = 12;
            Console.WriteLine(kv);
            Console.WriteLine(p);
            IspisiPravougaonik(p);
            Console.WriteLine();

            // zameniti u klasi Kvadrat kod svojstva A "override" sa "new" i posmatrati razlike
        }