Method Overriding in c#

Creating the method in a derived class with same name, same parameters and same return type as in base class is called as method overriding. We can implement overriding by using virtual and override keywords like below code snippet:

using System;

namespace ConsoleApplication4
{
    class Program
    {
        static void Main(string[] args)
        {
            int a = 2,
                b = 3;

            baseClass emp;

            emp = new baseClass();

            emp.Add(a, b);

            emp = new DerivedClass();

            emp.Add(a, b);

            Console.ReadLine();
        }
    }

    class baseClass
    {
        public virtual void Add(int a, int b)
        {
            Console.Write("Base Class: Addition\n");
        }
    }

    class DerivedClass : baseClass
    {
        public override void Add(int a, int b)
        {
            Console.Write("Derived Class: Addition\n");
        }
    }
}

Output:
Base Class: Addition
Derived Class: Addition

By combining method hiding and method overriding you will get below code and output:

using System;

namespace ConsoleApplication4
{
    class Program
    {
        static void Main(string[] args)
        {
            int a = 2,
                b = 3;

            baseClass emp;

            emp = new baseClass();

            emp.Add(a, b);

            emp = new DerivedClass();

            emp.Add(a, b);

            emp = new newDerivedClass();

            emp.Add(a, b);

            Console.ReadLine();
        }
    }

    class baseClass
    {
        public virtual void Add(int a, int b)
        {
            Console.Write("Base Class: Addition\n");
        }
    }

    class DerivedClass : baseClass
    {
        public override void Add(int a, int b)
        {
            Console.Write("Derived Class: Addition\n");
        }
    }

    class newDerivedClass : DerivedClass
    {
        public new void Add(int a, int b)
        {
            Console.Write("Derived Class: Addition\n");
        }
    }
}

Output:
Base Class: Addition
Derived Class: Addition

Derived Class: Addition

Post a Comment

0 Comments