परिचय
स्टैटिक पॉलीमॉर्फिज्म (Static Polymorphism) को कंपाइल-टाइम पॉलीमॉर्फिज्म या अर्ली बाइंडिंग भी कहते हैं। इसमें फंक्शन कॉल कंपाइल टाइम पर ही रिजॉल्व हो जाता है। C# में इसे दो तकनीकों द्वारा लागू किया जाता है:
- फंक्शन ओवरलोडिंग (Function Overloading)
- ऑपरेटर ओवरलोडिंग (Operator Overloading)
फंक्शन ओवरलोडिंग
एक ही नाम के कई मेथड एक ही स्कोप में परिभाषित किए जा सकते हैं, बशर्ते उनके पैरामीटर लिस्ट अलग हों (प्रकार या संख्या में)। केवल रिटर्न टाइप के आधार पर ओवरलोडिंग नहीं की जा सकती।
उदाहरण
using System;
namespace PolymorphismApplication
{
class Printdata
{
void print(int i)
{
Console.WriteLine("Printing int: {0}", i);
}
void print(double f)
{
Console.WriteLine("Printing float: {0}", f);
}
void print(string s)
{
Console.WriteLine("Printing string: {0}", s);
}
static void Main(string[] args)
{
Printdata p = new Printdata();
p.print(5); // int वर्जन कॉल होता है
p.print(500.263); // double वर्जन कॉल होता है
p.print("Hello C#"); // string वर्जन कॉल होता है
Console.ReadKey();
}
}
}
मुख्य बिंदु
- ओवरलोडिंग के लिए मेथड सिग्नेचर (नाम + पैरामीटर लिस्ट) अद्वितीय होना चाहिए।
- कंपाइलर कॉल साइट पर आर्गुमेंट के आधार पर सही मेथड चुनता है।
- यह रनटाइम पॉलीमॉर्फिज्म (वर्चुअल मेथड) से तेज़ होता है क्योंकि कोई लुकअप नहीं होता।