The purpose of writing this article is simple; to provide a simple and fresh demonstration of the basic differences between these three frequently used and confusing keywords in C# with some reference example. This article is purely for the beginner in C#.
Outlines
- Overview
- Introduction
- Virtual Keyword
- Override Keyword
- New Keyword
- Demo Examples
- Sample Implementation
- New Keyword
- Virtual and Override Keyword
- Method Overloading + Riding
- Key Points
- Conclusions
Overview
In this article I'll explain how virtual, override and new keywords vary by taking some set of examples respectively (some sort of functionality).
Finally there will be some key points to remember about all these 3 keywords.
Introduction
This introductory part will provide a brief introduction of all these 3 keywords. So here they are.
- Virtual Keyword
The Virtual keyword is used for generating a virtual path for its derived classes on implementing method overriding. The Virtual keyword is used within a set with an override keyword. It is used as:
- // Base Class
- class A
- {
- public virtual void show()
- {
- Console.WriteLine("Hello: Base Class!");
- Console.ReadLine();
- }
- }
- Override Keyword
The Override keyword is used in the derived class of the base class in order to override the base class method. The Override keyword is used with the virtual keyword, as in:
- // Base Class
- class A
- {
- public virtual void show()
- {
- Console.WriteLine("Hello: Base Class!");
- Console.ReadLine();
- }
- }
- // Derived Class
- class B : A
- {
- public override void show()
- {
- Console.WriteLine("Hello: Derived Class!");
- Console.ReadLine();
- }
- }
- New Keyword
The New keyword is also used for polymorphism but in the case of method overriding. So what does overriding means? In simple words we can say that we are changing what the base class does for the derived class.
It is implemented as:
- class A
- {
- public void show()
- {
- Console.WriteLine("Hello: Base Class!");
- Console.ReadLine();
- }
- }
- class B : A
- {
- public new void show()
- {
- Console.WriteLine("Hello: Derived Class!");
- Console.ReadLine();
- }
- }
Demo Example









Sanjay YadavPosted Jul 7, 2018, 11:51 PM
I think new key is only used to hide warning.....
Satish RathorePosted Aug 18, 2017, 5:42 AM
Nice explanation..
nikhil kapoorPosted May 23, 2017, 3:23 AM
Why should we use new , instead of virtual ! any real life example please ?
Abhishek JaiswalPosted Aug 7, 2016, 6:40 AM
Thanks man, i'll surely take a look. Cheers! :)
ehsan soltaniPosted Jul 26, 2016, 4:00 AM
Thanks for your attempts. For more information about Virtual Methods check this : http://www.projectpardaz.ir/?????????-???-?????-??-????/
Ramakrishna BasagallaPosted Apr 26, 2016, 1:06 AM
Good One
Abhishek JaiswalPosted Sep 9, 2014, 11:52 AM
Thank u guys! :)
Divya SharmaPosted Sep 9, 2014, 4:10 AM
Good One....
Manju lata YadavPosted Sep 9, 2014, 2:04 AM
nice article
Dinesh BeniwalPosted Sep 9, 2014, 1:15 AM
Good work Abhishek.
Gyan ParkashPosted Sep 9, 2014, 1:04 AM
good explanation