Definition: Method signature in base class as well as in derived class should be same.
If you are not satisfied with the implementation of a method in the parent class, you can keep the same declaration (signature and return type), but provide a different implementation.
Important Points::
- By using virtual and override keywords we can accomplish Method overriding.
- The virtual modifier indicates to derived classes that they can override this method.
- The override modifier allows a method to override the virtual method of its base class at run-time.
To achieve Run-time polymorphism or Late Binding, we are using Method Overriding concept.
Here, I am writing a simple program.
using System;
using System.Collections.Generic;
using System.Text;
namespace ConsoleApplication3
{
class baseclass
{
public virtual int Add(int a, int b)
{
return a + b;
}
}
class subclass : baseclass
{
public override int Add(int x, int y)
{
int d = 20;
return base.Add(x,y)+d;
}
}
class subclass2 : baseclass
{
public int Add(int x, int y)
{
int d = 40;
return base.Add(x, y) +
d;
}
}
class something
{
public static void Main(String[] args)
{
baseclass baseclsinst = new baseclass();
Console.WriteLine("Base class Addition::::::::::::" +
baseclsinst.Add(23, 23));
baseclass bscls = new subclass();
Console.WriteLine("Derived class addition:::::::::" +
bscls.Add(34, 54));
baseclass bscls2 = new subclass2();
Console.WriteLine("Derived class addition:::::::::" +
bscls2.Add(34, 54));
Console.ReadLine();
}
}
}