Tuesday, September 4, 2018

Playing with Virtual, new and override in c# - Polymorphism

Scenario 1>

//**************************Given**************************************


public class MyBaseClass
    {
        public void methodA()
        {
            Console.WriteLine("MyBaseClass: methodA");
        }

        public virtual void methodB()
        {
            Console.WriteLine("MyBaseClass: methodB");
        }
    }

    public class MyOverloadClass : MyBaseClass
    {
        public new void methodA()
        {
            Console.WriteLine("MyOverloadClass: methodA");
        }

        public override void methodB()
        {
            Console.WriteLine("MyOverloadClass: methodB");
        }
    }

    public class MyOverloadClass2 : MyOverloadClass
    {
        public void methodA()
        {
            Console.WriteLine("MyOverloadClass2: methodA");
        }

        public new void methodB()
        {
            Console.WriteLine("MyOverloadClass2: methodB");
        }
    }

//************************ Question ***************************

 MyBaseClass obj = new MyOverloadClass2();
            obj.methodA();
            obj.methodB();

//*********************** output *****************************
MyBaseClass: methodA
MyOverloadClass: methodB