Method Overriding and Virtual Methods c# In Hindi
C# प्रोग्रामिंग लैंग्वेज में मेथड ओवरराइडिंग कांसेप्ट एक डिराइव्ड क्लास यूजर डिफाइन सबक्लास को बेस रुट या पैरेंट क्लास में पहले से डिक्लेअर किए गए क्लास फंक्शन मेथड का अपना प्री-डिफाइन इम्प्लीमेंटेशन प्रोवाइड करने की परमिशन प्रोवाइड करता है। जिसमे सुपर क्लास के रूप में बेस क्लास में डिक्लेअर डिफाइन वर्चुअल मेथड डिराइव्ड सबक्लास को अपने डिफ़ॉल्ट बिहेवियर को क्लास में रिप्लेस या एक्सटेंड करने का एक कांसेप्ट प्रोवाइड करता है।

Method overriding and virtual method concepts in C# programming.
- Virtual method – वर्चुअल मेथड C# प्रोग्राम में बेस क्लास में डिफाइन एक मेथड होती है, जिसे यूजर डिफाइन डिराइव्ड या सबक्लास के माध्यम से ओवरराइड किया जा सकता है। वर्चुअल मेथड को C# प्रोग्राम में वर्चुअल कीवर्ड का यूज़ करके डिक्लेअर किया जाता है।
- Override – C# प्रोग्राम में डिराइव्ड क्लास में यूज़ होने वाला कीवर्ड एक सुपर या बेस क्लास में वर्चुअल के रूप में डिक्लेअर किए गए क्लास मेथड के लिए एक नया इम्प्लीमेंटेशन प्रोवाइड करने के लिए है।
How method overriding works in C# programming.
- C# प्रोग्राम में किसी यूजर डिफाइन क्लास मेथड को ओवरराइड करने के लिए इसे यूज़ किया जाता है.
- जिसमे सुपर या बेस क्लास में क्लास मेथड को वर्चुअल कीवर्ड से इंडीकेट या मार्क किया जाना चाहिए। यह मौजूदा प्रोगाम में इंडीकेट करता है कि पर्टिकुलर क्लास में मेथड को ओवरराइड करने का एक स्ट्रांग इंटेंशन है।
- बेस क्लास से कनेक्टेड डिराइव्ड या सबक्लास को मेथड का अपना इम्प्लीमेंटेशन प्रोवाइड करने के लिए मेथड ओवरराइड कीवर्ड का यूज़ किया जाता है।
- जब C# प्रोग्रामर ओवरराइड किए गए क्लास मेथड को प्रोग्राम में कॉल करते हैं, तो मौजूदा डिराइव्ड क्लास में वर्जन एग्जीक्यूट होता है. चाहे यहाँ C# प्रोग्रामर सुपर या बेस क्लास टाइप का रेफरेंस यूज़ कर रहे हों. यह C# प्रोग्रामिंग में पॉलीमॉर्फिज्म फीचर्स का एक मुख्य एलिमेंट है।
Example of class method overriding in C# programming.
C# प्रोग्रामिंग में एक सुपर या मैन क्लास मेथड ओवरराइडिंग कांसेप्ट कैसे बिहेव करता है, इसे जानने के लिए यहाँ एक एक्साम्प्ल से इसे समझते हैं।
Example of a base class with a virtual method in a C# program.
public class Course
{
// here we define a Virtual class method in the base class
public virtual void Select()
{
Console.WriteLine(“You can select your desire course.”);
}
}
Here’s an example of class method overriding in C#.
- यहाँ इस वर्चुअल मेथड एक्साम्प्ल में Select और Course क्लास में एक वर्चुअल मेथड डिफाइन है। यहाँ बेस क्लास Select के लिए एक सामान्य इम्प्लीमेंटेशन प्रोवाइड करता है. लेकिन डिराइव्ड सबक्लास को अपने इम्प्लीमेंटेशन से इसे ओवरराइड करने की परमिशन प्रोवाइड करता है।
Example of a derived class with method overriding in C#.
public class Java : Course
{
// here it Override the Select method from the Course class
public override void Select()
{
Console.WriteLine(“You select java course.”);
}
}
public class Csharp : Course
{
// here it Override the Select method from the Course class
public override void Select()
{
Console.WriteLine(“You select Csharp course.”);
}
}
Here, a derived class with method overriding example.
- Java और Csharp क्लास में, दोनों क्लास Select() मेथड को ओवरराइड करती हैं। जिसमे हर यूजर डिफाइन क्लास एक कस्टम इम्प्लीमेंटेशन प्रोवाइड करता है. जो कोर्स क्लास के टाइप के लिए एक स्पेशल मेथड होता है।
Using Polymorphism in C# Programming.
तो चलिए अब जानते है की C# प्रोग्राम में पॉलीमॉर्फिज्म फीचर्स हमें बेस क्लास रेफरेंस के माध्यम से ओवरराइड किए गए क्लास मेथड को कैसे कॉल करने में हेल्प करता है.
public class Program
{
static void Main()
{
// here we Create an array of number Course references
Course[] courses = new Course[3];
// here we Assign instances of Java and Csharp to the Course array
courses[0] = new Java();
courses[1] = new Csharp();
courses[2] = new Course(); // here we use Base class object
// here it Call the Select method on each course
foreach (var course in courses)
{
course.Select(); // here we define Polymorphism in action
}
}
}
Polymorphism in C# Explanation.
यहाँ इस प्रोग्राम में courses Course रेफरेंस का एक ग्रुप ऐरे है, जबकि रियल में एग्जीक्यूट किया गया मेथड रनटाइम पर डिसाइड होता है। जब course.Select() क्लास मेथड को कॉल किया जाता है. तो क्लास में डिफाइन रियल ऑब्जेक्ट टाइप (Java, Csharp, या Course) क्लास सबक्लास के आधार पर मेथड का सही वर्शन इनवोक किया करता है।
यह क्लियर कट C# प्रोग्राम में रनटाइम पॉलीमॉर्फिज्म का एक बेसिक एक्साम्प्ल है।
Detail Polymorphism Explanation in C#.
using System;
// here we defian a course Base/super class
public class Course
{
// here we define a Virtual method that can be overridden
public virtual void Select()
{
Console.WriteLine(“select your desire course.”);
}
}
// here we define a Derived class with name Java
public class Java : Course
{
// here we Override the Select method from the Course class
public override void Select()
{
Console.WriteLine(“You select Java course.”);
}
}
// here we Derived class Csharp
public class Csharp : Course
{
// here we Override the Select method from the Course class
public override void Select()
{
Console.WriteLine(“You select Csharp course.”);
}
}
// here we define a Main program
public class Program
{
static void Main()
{
// here we Create an array of Course references object
Course[] courses = new Course[3];
// here we Assign instances of Java and Csharp to the Course array
courses[0] = new Java();
courses[1] = new Csharp();
courses[2] = new Course(); // here Base class object
// here we Call the Select method on each course
foreach (var course in courses)
{
// here we use Polymorphism concept in action
course.Select();
}
}
}
When to use method overriding in a C# program.
- Polymorphism – C# प्रोग्राम में मेथड ओवरराइडिंग कांसेप्ट C# प्रोग्रामर को बेस क्लास के कॉमन बिहेवियर को डिफाइन या डिक्लेअर करने की परमिशन प्रोवाइड कर ज़्यादा रिलाएबल फ्लेक्सिबल और मेंटेनेबल प्रोग्राम सोर्स कोड क्रिएट करने में हेल्प करता है. जबकि बेस क्लास में डिराइव्ड या सबक्लास अपने स्पेशल सेल्फ इम्प्लीमेंटेशन प्रोवाइड कर सकते हैं।
- Extending or customizing behavior – यदि C# प्रोग्रामर के पास एक कॉमन क्लास मेथड डिफाइन है, जिसे डिराइव्ड या सबक्लास में अलग तरह से बिहेवियर करना चाहिए। तो यहाँ हर सबक्लास में क्लास बिहेवियर को कस्टमाइज़ करने के लिए मेथड ओवरराइडिंग एक यूज़फुल कांसेप्ट है।
Calling a base method in an overridden class method in C# programming.
C# प्रोग्रामर मौजूदा क्लास में बेस कीवर्ड का यूज़ करके ओवरराइड किए गए क्लास मेथड के अंदर मेथड के बेस क्लास वर्शन को जरूरत पड़ने पर कॉल कर सकते हैं।
Example of calling a base method within an overridden class method.
public class Java : Course
{
public override void Select()
{
// here it Call the base class’s Select method
base.Select();
Console.WriteLine(“You select java course.”);
}
}
Here’s an example of calling a base method within an overridden class.
- यहाँ इस एक्साम्प्ल में Java क्लास में Select क्लास मेथड, base.Select() का यूज़ करके Select के बेस क्लास (Course) वर्शन को कॉल करता है। इससे C# प्रोग्रामर बेस बिहेवियर को मेन्टेन रख सकते हैं, और डिराइव्ड क्लास में एक्स्ट्रा फंक्शनैलिटी को ऐड कर सकते हैं।
Virtual Methods and Abstract Methods in C#.
- Virtual class methods – C# प्रोग्राम में ओवरराइड कीवर्ड का यूज़ करके डिराइव्ड या सबक्लास में ओवरराइड किया जा सकता है। जहा क्लास में डिक्लेअर वर्चुअल मेथड डिफ़ॉल्ट बिहेवियर प्रोवाइड करते हैं. जबकि ये प्रोग्राम कस्टमाइज़ेशन की परमिशन प्रोवाइड करते हैं।
- Abstract class methods – C# प्रोग्राम में वर्चुअल मेथड के अपोसिट, प्रोग्राम में डिक्लेअर एब्स्ट्रैक्ट मेथड का एक बेस क्लास में इम्प्लीमेंटेशन नहीं होता है। उन्हें डिराइव्ड या सबक्लास में इम्प्लीमेंट किया जाना चाहिए। किसी भी C# प्रोग्राम में एब्स्ट्रैक्ट क्लास मेथड को एब्स्ट्रैक्ट कीवर्ड से डिक्लेयर या डिफाइन किया जाता है।
Example of an abstract method no implementation in the base class.
public abstract class Course
{
// here we define a Abstract class method with/no implementation provided
public abstract void Select();
}
public class Java : Course
{
// here we Implement the abstract class method
public override void Select()
{
Console.WriteLine(“You select java course.”);
}
}
public class Program
{
static void Main()
{
Course java = new Java();
java.Select(); // Result is – You select java course
}
}
Here, in the case of an abstract method, there is no implementation in the base class.
यहाँ इस प्रोग्राम में Course क्लास में Select क्लास मेथड एक एब्स्ट्रैक्ट है, इस वजह से डिराइव्ड क्लास (Java) को इसके लिए एक इम्प्लीमेंटेशन प्रोवाइड करना होगा। यहाँ C# प्रोग्रामर डायरेक्ट एब्स्ट्रैक्ट क्लास का इंस्टेंस क्रिएट नहीं कर सकते है. लेकिन C# प्रोग्रामर उन क्लास के नए इंस्टेंस क्रिएट कर सकते हैं. जो इसके एब्स्ट्रैक्ट मेथड को इम्प्लीमेंट प्रोवाइड करते हैं।
Complete Example of an abstract method with no implementation in the base class.
using System;
// here we use Abstract base class
public abstract class Course
{
// here we use Abstract method with no implementation
public abstract void Select();
}
// here we define a Derived class Java
public class Java : Course
{
// here we Implement the abstract class method
public override void Select()
{
Console.WriteLine(“You select java course.”);
}
}
// here start a Main program class
public class Program
{
static void Main()
{
// here we Create object using base class reference
Course java = new Java();
// here we Call the overridden class method
java.Select(); // Result is – You select java course.
}
}
Main Differences Between Virtual and Abstract Methods
| Feature | Virtual Class Method | Abstract Class Method |
| Where to Implement | Virtual class method Can have an implementation in the base class. | Abstract class method Does not have an implementation in the base class. |
| Where to Overriding | Virtual method Can be overridden in derived or subclasses using the override reserved keyword. | Abstract class method Must be overridden in derived subclasses. |
| How to Instantiation | Virtual method Can be used in an instantiated base class. | Abstract class method Base class cannot be instantiated (it is abstract) method behaviour. |
| Default work Behavior | Virtual method Provides default class behavior. | Abstract class method has No default behavior is provided. |
Summary of Method Overriding and Virtual Methods in C#.
- Virtual Class Method – C# प्रोग्रामिंग में बेस क्लास में डिफाइन एक मेथड है. जिसे स्पेशल बिहेवियर प्रोवाइड करने के लिए डिराइव्ड या सबक्लास में ओवरराइड किया जा सकता है। इसे बेस या सुपर क्लास में वर्चुअल कीवर्ड से मार्क या इंडीकेट किया जाता है।
- Overridden Method – C# प्रोग्रामिंग में ओवरराइड मेथड को बेस क्लास मेथड का नया इम्प्लीमेंटेशन प्रोवाइड करने के लिए डिराइव्ड या सबक्लास में यूज़ होता है। C# प्रोग्राम में ओवरराइड कीवर्ड का यूज़ डिराइव्ड क्लास में बेस क्लास से वर्चुअल मेथड को मॉडिफाई करने में किया जाता है।
- Polymorphism Features – C# प्रोग्राम में मेथड ओवरराइडिंग डिराइव्ड या सबक्लास मेथड को तब भी कॉल करने में हेल्प करता है. जब आप क्लास ऑब्जेक्ट के लिए एक बेस क्लास रेफरेंस का यूज़ करते हैं. जो मौजूदा प्रोग्राम में रनटाइम पॉलीमॉर्फिज्म का डिटेल एक्सप्लनेशन है।
- Calling a Base Method – C# प्रोग्रामर बेस कीवर्ड का यूज़ करके डिराइव्ड क्लास मेथड से बेस क्लास मेथड को कॉल कर सकते हैं।
- Abstract Class Method – C# प्रोग्राम में एब्स्ट्रैक्ट क्लास मेथड का बेस क्लास में इम्प्लीमेंटेशन नहीं होता है, और इन्हें किसी डिराइव्ड क्लास में इम्प्लीमेंट किया जाना चाहिए।
