बहुरूपता स्थिर या गतिशील हो सकती है। स्थैतिक बहुरूपता में, किसी फ़ंक्शन की प्रतिक्रिया संकलन समय पर निर्धारित की जाती है। गतिशील बहुरूपता में, यह रन-टाइम पर तय किया जाता है।
स्थैतिक बहुरूपता में, किसी फ़ंक्शन की प्रतिक्रिया संकलन समय पर निर्धारित की जाती है। गतिशील बहुरूपता में, यह रन-टाइम पर तय किया जाता है। गतिशील बहुरूपता जिसे हम लेट बाइंडिंग कहते हैं।
कंपाइल टाइम पॉलीमॉर्फिज्म या स्टेटिक बाइंडिंग
संकलन समय के दौरान किसी फ़ंक्शन को किसी ऑब्जेक्ट से जोड़ने की क्रियाविधि को अर्ली बाइंडिंग कहा जाता है। इसे स्टैटिक बाइंडिंग भी कहा जाता है।
रन टाइम पॉलीमॉर्फिज्म या डायनेमिक बाइंडिंग
रनटाइम पॉलीमॉर्फिज्म में मेथड ओवरराइडिंग होती है जिसे डायनेमिक बाइंडिंग या लेट बाइंडिंग के रूप में भी जाना जाता है।
आइए हम संकलन समय बहुरूपता का एक उदाहरण देखें जो ओवरलोडिंग विधि को लागू करता है -
उदाहरण
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(); // Call print to print integer p.print(5); // Call print to print float p.print(500.263); // Call print to print string p.print("Hello C++"); Console.ReadKey(); } } }
आउटपुट
Printing int: 5 Printing float: 500.263 Printing string: Hello C++