Example #1
0
        ///////////////////////// Abstract Method //////////////////////////////////

        static void AbstractMethod()
        {
            //var animal = new Animal(); // nu se creaza o instanta pentru clasa abstracta
            var pisica = new Pisica();

            pisica.Mananca(); // apeleaza metoda abstracta
            pisica.Doarme();  // apeleaza metoda normala
        }
Example #2
0
        static void Main(string[] args)
        {
            rex animal = new rex();

            Console.Write("numar animale: ");
            animal.numarAnimale();
            animal.nume = "\"nume de animal\"";
            Console.Write($"{animal.nume} \n");
            animal.speak();         //method to be overrided using polymorphism

            Console.WriteLine();

            Caine rex = new Caine();

            rex.nume = "rex";       //can be accessed because it's plublic
            //rex.varsta = 0;       //error because it's protected and can only be accessed in the base class or subclasses => method varstaAnimal()
            Console.WriteLine($"Numele meu este {rex.nume}");
            rex.setPicioare(4);
            rex.mers();
            //Console.Write("Enter age: ");
            //rex.setVarsta( int.Parse(Console.ReadLine())); //input method
            rex.setVarsta(2);
            rex.varstaAnimal();     //method in subclass for protected variable: varsta
            rex.speak();

            Console.WriteLine();

            rex miti = new Pisica(); //works defining it as base class

            miti.nume = "miti";
            miti.setVarsta(5);
            Console.WriteLine($"Numele meu este {miti.nume}");
            miti.setPicioare();     //overload
            miti.mers();
            miti.speak();

            Console.WriteLine();

            Cangur kangu = new Cangur();

            kangu.nume = "sven";
            kangu.maPrezint();      //abstractization: hide details
            kangu.setVarsta(10);    //method for protected variable
            kangu.marsupiu();
            kangu.maturizare();     //method in class for private variabile: pui //kangu.pui = false; //error because "pui" property is private
            kangu.marsupiu();
            kangu.setPicioare(2);   //polymorphism: overload - same name and different inputs
            kangu.mers();           //different response for every animal
            kangu.speak();          //polymorphism: overrided - redefined in every class

            Console.Write("\nNr total animale: ");
            rex.numarAnimale();

            Console.ReadKey();
        }