Product Design, Manufacturing & Innovation Resources
घर » बहुरूपता (प्रोग्रामिंग)

बहुरूपता (प्रोग्रामिंग)

1967
  • Christopher Strachey
Computer programming workspace demonstrating polymorphism with code snippets.

(यह छवि केवल उदाहरण के लिए बनाई गई है)

पॉलीमॉर्फिज्म, जो ग्रीक भाषा के शब्द "अनेक आकृतियाँ" से लिया गया है, विभिन्न वर्गों की वस्तुओं को एक सामान्य सुपरक्लास की वस्तुओं के रूप में मानने की अनुमति देता है। यह एक एकल इंटरफ़ेस को सक्षम बनाता है, जैसे कि एक तरीका नाम, जिसका उपयोग सामान्य प्रकार की क्रियाओं के लिए किया जाता है। विशिष्ट क्रिया रनटाइम पर ऑब्जेक्ट के सटीक प्रकार द्वारा निर्धारित की जाती है। यह अक्सर मेथड ओवरराइडिंग के माध्यम से प्राप्त किया जाता है।

Polymorphism is a powerful concept that allows for writing flexible and decoupled code. The most common form in OOP is subtype polymorphism, which is enabled by inheritance and method overriding. When a subclass provides a specific implementation for a method that is already defined in its superclass, it is called overriding. A variable of the superclass type can refer to an object of any of its subclasses. When a method is called on this variable, the version of the method that gets executed is the one belonging to the object’s actual class, not the variable’s type. This decision is made at runtime, a process known as dynamic dispatch or late binding.

उदाहरण के लिए, 'शेप' नामक एक सुपरक्लास पर विचार करें जिसमें 'calculateArea()' नामक एक विधि है। 'सर्कल' और 'रेक्टेंगल' जैसी सबक्लास 'शेप' से इनहेरिट कर सकती हैं और 'calculateArea()' के अपने विशिष्ट कार्यान्वयन प्रदान कर सकती हैं। एक प्रोग्राम में 'शेप' ऑब्जेक्ट्स की एक सूची हो सकती है, जिसमें 'सर्कल' और 'रेक्टेंगल' दोनों इंस्टेंसेस शामिल हों। सूची में इटरेट करते समय और प्रत्येक एलिमेंट पर 'calculateArea()' को कॉल करते समय, प्रत्येक शेप के लिए सही फ़ॉर्मूला स्वचालित रूप से उपयोग किया जाएगा। इससे प्रत्येक ऑब्जेक्ट के प्रकार की जाँच करने के लिए लंबे "if-else" या "switch" स्टेटमेंट की आवश्यकता समाप्त हो जाती है, जिससे कोड अधिक स्वच्छ और विस्तार योग्य बनता है। नए आकार उन्हें संसाधित करने वाले कोड को संशोधित किए बिना सिस्टम में जोड़े जा सकते हैं।

UNESCO Nomenclature: 1203
कंप्यूटर विज्ञान

Type

सार प्रणाली

व्यवधान

इंक्रीमेंटल

उपयोग

व्यापक उपयोग

शगुन

  • सी जैसी भाषाओं में फंक्शन पॉइंटर्स की अवधारणा
  • सामान्य प्रोग्रामिंग अवधारणाएँ
  • वंशानुक्रम, जो उपप्रकार बहुरूपता के लिए आवश्यक वर्ग पदानुक्रम प्रदान करता है
  • लचीले और विस्तार योग्य सॉफ्टवेयर सिस्टम की आवश्यकता

आवेदन

  • एक ही 'draw()' विधि का उपयोग करके विभिन्न आकृतियाँ ('वृत्त', 'वर्ग') बनाना।
  • एक सामान्य ‘print()’ फ़ंक्शन का उपयोग करके विभिन्न प्रकार के दस्तावेज़ों (‘‘pdf’, ‘Word’) को संसाधित करना।
  • उपयोगकर्ता इंटरफ़ेस इवेंट हैंडलर को लागू करना
  • सामान्य संग्रह जो विभिन्न लेकिन संबंधित प्रकार की वस्तुओं को धारण कर सकते हैं
  • निर्भरता इंजेक्शन फ्रेमवर्क

पेटेंट:

NA

संभावित नवाचार विचार

बॉट ट्रैफिक को कम करने के कारण, जो वर्तमान में प्रति दिन 40,000 से अधिक है, यह सामग्री केवल समुदाय के सदस्यों के लिए आरक्षित है।
> लॉगिन < या > रजिस्टर < इस सामग्री और अन्य सभी प्रतिबंधित सामग्रियों और उपकरणों तक पहुंच (100% निःशुल्क) है।

संबंधित विषय: बहुरूपता, ओवरराइडिंग, डायनेमिक डिस्पैच, लेट बाइंडिंग, सबटाइप, इंटरफ़ेस, एब्स्ट्रैक्शन, ओओपी, मेथड ओवरराइडिंग, रनटाइम।

ऐतिहासिक संदर्भ

बहुरूपता (प्रोग्रामिंग)

1956
1960
1967
1967
1970
1970
1970
1953
1960
1960
1967
1970
1970
1970
1970

(यदि तिथि अज्ञात है या प्रासंगिक नहीं है, उदाहरण के लिए "द्रव यांत्रिकी", तो इसके उल्लेखनीय उद्भव का एक अनुमानित आंकड़ा प्रदान किया गया है)

संबंधित आविष्कार, नवाचार और तकनीकी सिद्धांत

पंजीकृत सदस्यों के लिए पूर्ण आकार की छवियाँ और डाउनलोड 100% निःशुल्क उपलब्ध हैं।