Calling derived class method by the base type reference variable in C#

Program


using System;

namespace Polymorphism
{
    class ReferingDerivedObjects
    {
        public class Person
        {
            public void getPerson()
            {
                Console.WriteLine("Get Details about Person...");
            }
        }

        class Employee: Person
        {
            public void getEmployee()
            {
                Console.WriteLine("Get Details about Employee");
            }
        }

        static void Main(string[] args)
        {
            Person p;

            p = new Person();
            p.getPerson();

            p = new Employee();
            p.getPerson();
            //Parent type can't access derived type method
            //p.getEmployee(); //will not work...

            Employee e = new Employee();
            e.getPerson();
            e.getEmployee();

            Console.ReadKey();
        }
    }
}

Output

Get Details about Person...//when base ref.var referring base object

Get Details about Person...//when base ref.var referring derived object

Get Details about Person...//when derived ref.var referring derived object

Get Details about Employee//when derived ref.var referring derived object



No comments:

Post a Comment