C#

Drop Down MenusCSS Drop Down MenuPure CSS Dropdown Menu

Wednesday, 10 December 2014

Difference Between Virtual Method and Abstract Method(CAN vs MUST)


CASE 1: No Compilation Error[Virtual Method Can be implemented]

using System;

namespace ConsoleApplication1
{
    public abstract class A
    {
        public abstract void Method1();
        public virtual void Method2()
        {
            Console.WriteLine("Method2Base");
        }
    }

    public class B : A
    {

        //public override void Method2()
        //{
        //    Console.WriteLine("Method2Derived");
        //}

        public override void Method1()
        {
            Console.WriteLine("Method1");
        }
    }


    class Program
    {
        static void Main(string[] args)
        {
            A obj = new B();
            obj.Method1();
            obj.Method2();
            Console.ReadLine();
        }
    }

}

CASE 2:Compilation Error[Abstract Method Must be implemented]

using System;

namespace ConsoleApplication1
{
    public abstract class A
    {
        public abstract void Method1();
        public virtual void Method2()
        {
            Console.WriteLine("Method2Base");
        }
    }

    public class B : A
    {

        public override void Method2()
        {
            Console.WriteLine("Method2Derived");
        }

        //public override void Method1()
        //{
        //    Console.WriteLine("Method1");
        //}
    }


    class Program
    {
        static void Main(string[] args)
        {
            A obj = new B();
            obj.Method1();
            obj.Method2();
            Console.ReadLine();
        }
    }
}

No comments:

Post a Comment