HTML clipboard
As we all know C# is a OOP's language. So it 
implements polymorphism.
C# polymorphism is of two types:
- Runtime polymorphism
- Compile time polymorphism
We achieve runtime polymorphism by the keyword "override".
There is another keyword which stops the compiler from overriding a particular 
method by using the Keyword "new" instead of override keyword. The "new" keyword 
not only stops runtime polymorphism but also allocates a new memory reference 
for the method with the same signature that of the base class.
Please follow the small example below:
This sample will show the runtime polymorphism:-
The first class defined is:
using System;
using 
System.Collections.Generic;
using 
System.Text;
using 
System.IO;
namespace 
ConsoleApplication2
{
    public class
Polymorphism
    {
        public virtual
void DisplayName()
        {
            Console.WriteLine("This 
is Runtime polymorphism");
        }
    }
}
The second class defined is:
using 
System;
using 
System.Collections.Generic;
using 
System.Text;
using 
ConsoleApplication2;
using 
System.IO;
namespace 
ConsoleApplication2
{
    class Polymorphism1 
:Polymorphism
    {
        public override
void DisplayName()
        {
            Console.WriteLine("This 
is  not Runtime polymorphism");
        }
    }
}
The main class defined is:
using 
System;
using 
System.Collections.Generic;
using 
System.Text;
using 
ConsoleApplication2;
using 
System.IO;
namespace 
ConsoleApplication2
{
    class Program
    {
        static void 
Main(string[] args)
        {
            Polymorphism1 obj =
new Polymorphism1();
            obj.DisplayName();
            Console.ReadKey();
        }
    }
}
This is the next sample which will show us how to stop runtime polymorphism:-
The first class defined is:
using 
System;
using 
System.Collections.Generic;
using 
System.Text;
using 
System.IO;
namespace 
ConsoleApplication2
{
    public class
Polymorphism
    {
        public virtual
void DisplayName()
        {
            Console.WriteLine("This 
is Runtime polymorphism");
        }
    }
}
The second class defined is:
using 
System;
using 
System.Collections.Generic;
using 
System.Text;
using 
ConsoleApplication2;
using 
System.IO;
namespace 
ConsoleApplication2
{
    class Polymorphism1 
:Polymorphism
    {
        public new
void DisplayName()
        {
            Console.WriteLine("This 
is  not Runtime polymorphism");
        }
    }
}
The main class defined is:
using 
System;
using 
System.Collections.Generic;
using 
System.Text;
using 
ConsoleApplication2;
using 
System.IO;
namespace 
ConsoleApplication2
{
    class Program
    {
        static void 
Main(string[] args)
        {
            Polymorphism1 obj =
new Polymorphism1();
            obj.DisplayName();
            Console.ReadKey();
        }
    }
}