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

So, let’s explore the concept of method overloading and method overriding in C# programming.
Method Overloading Concept in C#
C# प्रोग्रामिंग में मेथड ओवरलोडिंग कांसेप्ट तब परफॉर्म होता है, जब C# प्रोग्रामर एक ही यूजर डिफाइन क्लास में एक ही नाम से कई मल्टीप्ल क्लास मेथड डिफाइन या क्रिएट करता हैं. लेकिन क्लास के वेरिएबल पैरामीटर डाटा टाइप, नंबर ऑफ़ पैरामीटर की संख्या या दोनों इंडिविजुअल सेपेरेटेड डिफाइन होते हैं। जिसमे इन डाटा टाइप का रिटर्न डाटा टाइप एक जैसा या अलग अलग भी हो सकता है. लेकिन यह किसी भी प्रकार के ओवरलोडेड मेथड में डिफ्रेंस क्रिएट नहीं करते है।
क्लास प्रोग्राम में ओवरलोडिंग प्रोग्राम कंपाइल-टाइम पर ही रन होती है। यह किसी यूजर डिफाइन क्लास मेथड को कॉल करने के कई मेथड स्टेप प्रोवाइड करने के बारे में है।
Key features of method overloading in C# programming.
- याद रहे, मौजूदा क्लास में डिफाइन क्रिएटेड मेथड का नाम एक जैसा ही होना चाहिए।
- यूजर डिफाइन क्लास मेथड में अलग-अलग वेरिएबल पैरामीटर लिस्ट डाटा टाइप होनी चाहिए। या तो नंबर ऑफ़ क्लास पैरामीटर की संख्या में या उनके डाटा टाइप डिफाइन में।
- यहाँ आपके द्वारा क्रिएटेड क्लास में रिटर्न डाटा टाइप अलग अलग हो सकता है, लेकिन किसी प्रोग्राम में सिर्फ रिटर्न डाटा टाइप के आधार पर क्लास ओवरलोडेड मेथड में अंतर करने के लिए काफी नहीं है।
- किसी क्लास प्रोग्राम में मेथड ओवरलोडिंग प्रोग्राम कंपाइल-टाइम स्टैटिक पॉलीमॉर्फिज्म पर आटोमेटिक ठीक हो जाती है।
Example of method overloading in C#.
using System;
public class Addition
{
// here we define Overloaded class method 1: which Adds two p and q integers value
public int Total(int p, int q)
{
return p + q;
}
// here we define Overloaded class method 2: which Adds three p, q, and r, integers values
public int Total(int p, int q, int r)
{
return p + q + r;
}
// here we define Overloaded class method 3: which Adds two double numbers values
public double Total(double p, double q)
{
return p + q;
}
}
public class Program
{
static void Main()
{
Addition addition = new Addition();
// here we Calling different overloaded class methods
Console.WriteLine(addition.Total(7, 7)); // Result is – 14
Console.WriteLine(addition.Total(4, 7, 1)); // Result is – 12
Console.WriteLine(addition.Total(8.3, 4.9)); // Result is – 13.2
}
}
Explaining method overloading in C#.
- यहाँ इस प्रोग्राम में Total मेथड अलग-अलग क्लास पैरामीटर सिग्नेचर वैल्यू से ओवरलोड होता है.
- Total(int, int)
- Total(int, int, int)
- Total(double, double)
- जब सिस्टम इसमें Total() क्लास मेथड को कॉल करते हैं, तो C# प्रोग्राम कंपाइलर आपके पास किए गए आर्गुमेंट के आधार पर प्रॉपर क्लास मेथड को सलेक्ट करता है।
Method overriding concept in C#.
C# प्रोग्रामिंग लैंग्वेज में मेथड ओवरराइडिंग ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग ऊप्स कांसेप्ट का एक इम्पोर्टेन्ट फीचर है. मेथड ओवरराइडिंग प्रोसेस में डिराइव्ड क्लास में डिफाइन एक मेथड बेस क्लास में पहले से डिक्लेअर डिफाइन किए गए क्लास मेथड का एक स्पेशल इम्प्लीमेंटेशन प्रोवाइड करता है। इसमें बेस या सुपर क्लास में मेथड को वर्चुअल कीवर्ड (या एब्स्ट्रैक्ट क्लास कीवर्ड) के अनुसार मार्क या इंडीकेट किया जाना चाहिए। जिससे की इसे जरूरत पड़ने पर मौजूदा प्रोग्राम में डिराइव्ड या सबक्लास में ओवरराइड किया जा सके।
क्लास में क्रिएटेड या डिफाइन ओवरराइडिंग मेथड प्रोग्राम रनटाइम पर आटोमेटिक करेक्ट हो जाती है. इसी वजह से मॉडर्न प्रोग्रामिंग में डायनामिक पॉलीमॉर्फिज्म फीचर का एक फॉर्मेट है।
Method overriding concept in C#.
यूजर डिफाइन बेस या सुपर क्लास में क्लास मेथड को ओवरराइड करने के लिए C# प्रोग्रामर को मौजूदा क्लास प्रोग्राम में वर्चुअल, एब्स्ट्रैक्ट या प्रोटेक्टेड के रूप में मार्क या इंडीकेट किया जाना चाहिए।
डिराइव्ड या सबक्लास में डिफाइन क्लास मेथड सिग्नेचर जिसमे (क्लास मेथड का नाम, रिटर्न डाटा टाइप और क्लास वेरिएबल पैरामीटर) बेस क्लास के मेथड से एक्जैक्ट प्रॉपर मैच होना चाहिए।
डिराइव्ड या सबक्लास में ओवरराइड किया गया क्लास मेथड, सुपर या बेस क्लास मेथड का एक नया इम्प्लीमेंटेशन प्रोवाइड करता है।
C# प्रोग्राम में क्लास ओवरराइडिंग मेथड को प्रोग्राम रनटाइम पर करेक्ट किया जाता है, इसे डायनामिक पॉलीमॉर्फिज्म के रूप में जाना जाता है।
Example of class method overriding in C#.
using System;
public class Course
{
// here we use Virtual class method in the base/super class
public virtual void Select()
{
Console.WriteLine(“Select your desire programming course.”);
}
}
public class Python : Course
{
// here we define Override the Select method from the Course class
public override void Select()
{
Console.WriteLine(“You select the python programming.”);
}
}
public class Sql : Course
{
// here we Override the Select method from the Course class
public override void Select()
{
Console.WriteLine(“You select the sql database.”);
}
}
public class Program
{
static void Main()
{
// here we Create an Course reference but point it to Python and Sql class objects
Course python = new Python();
Course sql = new Sql();
// here we Call the overridden Select method
python.Select(); // Result is – You select the python programming.
sql.Select(); // Result is – You select the sql database.
}
}
Explaining class method overriding.
- यहाँ इस प्रोग्राम में Select मेथड को Course बेस क्लास में वर्चुअल के तौर पर डिफाइन किया गया है।
- जहा Python और Sql क्लास हर तरह के कोर्स क्लास के लिए एक स्पेशल बिहेवियर प्रोवाइड करने के लिए इस मेथड को ओवरराइड करते हैं।
- python (जो Python की ओर इंडीकेट करता है) और sql (जो Sql की ओर इंडीकेट करता है) पर Select () को कॉल करते समय, रनटाइम सिस्टम यह फिक्स करता है कि रियल क्लास ऑब्जेक्ट टाइप (Python या Sql) के आधार पर कौन सा क्लास मेथड कॉल करना है. चाहे ये रेफरेंस Course टाइप के हों। यह रनटाइम पॉलीमॉर्फिज्म का काम है।
When to use overloading vs. overriding in C#.
When to use method overloading in C#.
जब C# प्रोग्रामर को किसी क्लास मेथड के कई वर्जन प्रोवाइड करने हों. जो मौजूदा क्लास प्रोग्राम में डिक्लेअर वेरिएबल पैरामीटर डाटा टाइप या नंबर के हिसाब से इंडिविजुअल सेपेरेटेड हों।
- Example – जैसे एक क्लास प्रोग्राम में कई नंबर्स का टोटल करने का एक मेथड है, जो एक ही समय में अलग-अलग क्लास डाटा टाइप या नंबर के आर्गुमेंट को इनपुट के रूप में एक्सेप्ट करता है।
When to use C# method overriding.
जब C# प्रोग्रामर को किसी डिराइव्ड या सबक्लास को बेस पैरेंट क्लास में डिफाइन किए गए क्लास मेथड के बिहेवियर को मॉडिफाई करने या आगे और अधिक एक्सटेंड करने की परमिशन प्रोवाइड करना चाहते हैं।
- Example – जैसे एक बेस क्लास के रूप में Draw मेथड वाला एक पैरेंट क्लास डिफाइन है, और उसी में Shape, और Draw के अपने इम्प्लीमेंटेशन प्रोवाइड करने वाले डिराइव्ड सबक्लास Circle और Rectangle को अपना इम्प्लीमेंटेशन सपोर्ट करता है।
Group example of overloading and overriding concepts in C#.
तो चलिए C# प्रोग्रामिंग में मेथड ओवरलोडिंग और मेथड ओवरराइडिंग कॉन्सेप्ट को एक सिंपल एक्साम्प्ल से समझते हैं.
using System;
public class Course
{
public virtual void Select()
{
Console.WriteLine(“You can select your desire programming course.”);
}
// here we use Method overloading in base class
public void Select(string selection)
{
Console.WriteLine($”Your course selection choice is {selection} selection.”);
}
}
public class Java : Course
{
public override void Select() // here we Overriding it
{
Console.WriteLine(“Your selection is java language.”);
}
// here we use Overloading method in derived class
public void Select(int value)
{
for (int p = 0; p < value; p++)
{
Console.WriteLine(“\n | Vcanhelpsu For Programming |”);
}
}
}
public class Program
{
static void Main()
{
Course course = new Course();
course.Select(); // here it Calls base class Select()
Java java = new Java();
java.Select(); // here it Calls overridden Select() in Java class
java.Select(“,Best”); // here it Calls overloaded Select() in Course class
java.Select(7); // here it Calls overloaded Select() in Java class
}
}
Explain overloading and overriding concepts.
- यहाँ ग्रुप मेथड ओवरलोडिंग और मेथड ओवरराइडिंग प्रोग्राम एक्साम्प्ल में Course क्लास में एक ओवरलोडेड Select मेथड डिफाइन होता है. जो प्रोग्राम में एक स्ट्रिंग को वेरिएबल पैरामीटर के रूप में लेता है।
- Java क्लास में एक स्पेशल इम्प्लीमेंटेशन प्रोवाइड करने के लिए Select मेथड को ओवरराइड करता है।
- जिसमे Java क्लास Select मेथड को एक इंटीजर पैरामीटर से भी ओवरलोड करता है, जिससे आप “Best” selection टेक्स्ट स्टेटमेंट को कई बार कंसोल स्कीन में प्रिंट कर सकते हैं।
Main Differences Between Method Overloading and Method Overriding in c#.
| Feature | Method Overloading concept in c# | Method Overriding concept in c# |
| About/Definition | Method overloading features help us to declare or defining multiple class methods at a same time with the same name but different list of variable or class parameter lists. | Method overriding features help us to Redefining a base parent class method in the derived subclass with the same signature identity. |
| Parameters list | In Method overloading concept Must have different class parameter lists argument (number or variable and their data types). | In Method overriding features Must have the same class signature (with name, return data type, list of variable or parameters, etc). |
| Return data Type | With Method overloading concept program Return type can different, but here data type return type alone cannot be differentiating the overloaded class methods. | In Method overriding concept Return type must be the same as the base class method. |
| Binding method | With Method overloading Compile-time binding (static polymorphism) supported. | With Method overriding Runtime binding (dynamic polymorphism) feature supported. |
| Base Class Method | In Method overloading there is Not required for method overloading. | In The Method overriding base class method must be virtual, abstract, or protected to allow overriding. |
| What is Purpose | Method overloading Allows us to multiple versions of the same class method with name with different argument lists. | Method overriding Allows us a subclass to provide a specific implementation of a method that is already defined in the base or parent class. |
| Grant to Base Class | Method overloading doesn’t involve a base class method concept. | Method overriding Can call the base class method using base.MethodName() function. |
Method overloading and method overriding summary in C#.
- C# प्रोग्रामिंग में मेथड ओवरलोडिंग कांसेप्ट C# यूजर को एक ही नाम से लेकिन अलग-अलग मल्टीप्ल क्लास वेरिएबल पैरामीटर लिस्ट वाले कई क्लास मेथड डिक्लेअर या डिफाइन करने के फीचर्स प्रोवाइड करता है. जिसमे मौजूदा क्लास मेथड को कॉल करने के अलग-अलग स्टेप या मेथड मिलते हैं। C# प्रोग्राम में क्लास मेथड ओवरराइडिंग एक डिराइव्ड सबक्लास को बेस क्लास में पहले से डिक्लेअर डिफाइन किए गए क्लास मेथड का एक स्पेशल इम्प्लीमेंटेशन प्रोवाइड करने में हेल्प करता है. जो मौजूदा प्रोग्राम में रनटाइम पॉलीमॉर्फिज्म फीचर्स को सपोर्ट करता है।
- मेथड ओवरलोडिंग और मेथड ओवरराइडिंग दोनों ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग में फ्लेक्सिबिलिटी रिलायबिलिटी और अगेन यूज़ होने वाले प्रोग्राम सोर्स कोड को इम्प्लीमेंट या क्लास प्रोग्राम में अप्लाई करने के लिए एक एसेंशियल फीचर्स या कॉन्सेप्ट हैं. जिसमें क्लास मेथड प्रोग्राम ओवरराइडिंग कंपाइल-टाइम बिहेवियर पर फोकस करता है, और क्लास मेथड ओवरराइडिंग रनटाइम बिहेवियर पर टोटली फोकस करता है।
