Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Java

Java में Polymorphism (पॉलीमॉर्फिज्म)

पॉलीमॉर्फिज्म एक ऑब्जेक्ट की कई रूप लेने की क्षमता है। OOP में पॉलीमॉर्फिज्म का सबसे आम उपयोग तब होता है जब एक पैरेंट क्लास रेफरेंस का उपयोग चाइल्ड क्लास ऑब्जेक्ट को संदर्भित करने के लिए किया जाता है।

कोई भी Java ऑब्जेक्ट जो एक से अधिक IS-A टेस्ट पास कर सकता है, उसे पॉलीमॉर्फिक माना जाता है। Java में, सभी Java ऑब्जेक्ट्स पॉलीमॉर्फिक हैं क्योंकि कोई भी ऑब्जेक्ट अपने स्वयं के टाइप के लिए और Object क्लास के लिए IS-A टेस्ट पास करेगा।

यह जानना महत्वपूर्ण है कि ऑब्जेक्ट को एक्सेस करने का एकमात्र संभावित तरीका रेफरेंस वेरिएबल के माध्यम से है। एक रेफरेंस वेरिएबल केवल एक टाइप का हो सकता है। एक बार घोषित होने पर, रेफरेंस वेरिएबल के टाइप को बदला नहीं जा सकता।

रेफरेंस वेरिएबल को अन्य ऑब्जेक्ट्स के लिए पुनः असाइन किया जा सकता है बशर्ते कि इसे final घोषित न किया गया हो। रेफरेंस वेरिएबल का टाइप उन मेथड्स को निर्धारित करेगा जिन्हें यह ऑब्जेक्ट पर इनवोक कर सकता है।

एक रेफरेंस वेरिएबल अपने घोषित टाइप के किसी भी ऑब्जेक्ट या उसके घोषित टाइप के किसी भी सबटाइप को संदर्भित कर सकता है। एक रेफरेंस वेरिएबल को क्लास या इंटरफ़ेस टाइप के रूप में घोषित किया जा सकता है।

उदाहरण

आइए एक उदाहरण देखें।

public interface Vegetarian{} 
public class Animal{} 
public class Deer extends Animal implements Vegetarian{}

अब, Deer क्लास को पॉलीमॉर्फिक माना जाता है क्योंकि इसमें मल्टीपल इनहेरिटेंस है। उपरोक्त उदाहरणों के लिए निम्नलिखित सत्य हैं −

  • A Deer IS-A Animal
  • A Deer IS-A Vegetarian
  • A Deer IS-A Deer
  • A Deer IS-A Object

जब हम Deer ऑब्जेक्ट रेफरेंस पर रेफरेंस वेरिएबल तथ्यों को लागू करते हैं, तो निम्नलिखित घोषणाएं कानूनी हैं −

उदाहरण

Deer d = new Deer(); 
Animal a = d; 
Vegetarian v = d; 
Object o = d;

सभी रेफरेंस वेरिएबल्स d, a, v, o हीप में एक ही Deer ऑब्जेक्ट को संदर्भित करते हैं।

  1. क्या Java में  this  को रेफरेंस असाइन करना संभव है? क्या Java में 'this' को रेफरेंस असाइन करना संभव है?

    Java में this कीवर्ड का उपयोग वर्तमान ऑब्जेक्ट के रेफरेंस के रूप में किया जाता है, एक इंस्टेंस मेथड या कंस्ट्रक्टर के भीतर। इसका उपयोग करके, आप क्लास के सदस्यों जैसे कंस्ट्रक्टर्स, वेरिएबल्स, और मेथड्स को संदर्भित कर सकते हैं। this को रेफरेंस असाइन करना परिभाषा के अनुसार this एक कीवर्ड है जो वर्तमा

  1. - Java में Runtime Polymorphism

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

  1. - Jackson और Gson का उपयोग करके Java POJO को JSON में आसानी से बदलें

    इस ट्यूटोरियल में हम दिखाते हैं कि दो लाइब्रेरी, Jackson और Gson का उपयोग करके Java ऑब्जेक्ट को JSON में कैसे बदलें। हम एक Person क्लास का उपयोग करेंगे जो सिर्फ एक स्टैंडर्ड POJO है। एक बार Person ऑब्जेक्ट बनाने के बाद, हम इसे विभिन्न लाइब्रेरी का उपयोग करके JSON में बदल सकते हैं। Person.java import