Covariant Return Type क्या हैं? | Covariant Return Type in Java in Hindi

इस आर्टिकल में हम जावा Covariant Return Type क्या हैं? | Covariant Return Type in Java in Hindi के बारे में जानेंगे।

Covariant Return Type क्या हैं? | Covariant Return Type in Java in Hindi

covariant return type specifies करता है कि return type subclass के same direction में भिन्न हो सकता है।

Java5 से पहले, return type को बदलकर किसी भी method को override करना संभव नहीं था। लेकिन अब, Java5 के बाद से, return type को बदलकर विधि को override करना संभव है यदि subclass किसी भी method को ओवरराइड करता है जिसका रिटर्न type Non-Primitive होता है लेकिन यह अपने रिटर्न type को subclass type में बदल देता है। आइए एक सरल उदाहरण हैं।

Simple example of Covariant Return Type in Hindi

class A{    
A get(){return this;}    
}    
    
class B1 extends A{    
@Override  
B1 get(){return this;}    
void message(){System.out.println("welcome to covariant return type");}    
    
public static void main(String args[]){    
new B1().get().message();    
}    
}    

Output:

welcome to covariant return type

जैसा कि आप उपरोक्त उदाहरण में देख सकते हैं, A class की get() method का return type A है, लेकिन B class की get() method का रिटर्न type B है। दोनों methods में अलग-अलग रिटर्न type हैं लेकिन यह method ओवरराइडिंग है . इसे covariant रिटर्न type के रूप में जाना जाता है।

Covariant Return Type in Java in Hindi

Advantages of Covariant Return Type in Hindi

covariant रिटर्न type के फायदे निम्नलिखित हैं।

1) Covariant रिटर्न type class hierarchy में confusing type के casts से दूर रहने में सहायता करता है और कोड को अधिक उपयोगी, readable और maintainable बनाता है।

2) overriding method में, covariant रिटर्न type अधिक to the point रिटर्न type होने की स्वतंत्रता प्रदान करता है।

3) Covariant रिटर्न type रिटर्न पर रन-टाइम ClassCastExceptions preventing को रोकने में मदद करता है।

class A1  
{  
    A1 foo()  
    {  
        return this;  
    }  
      
    void print()  
    {  
        System.out.println("Inside the class A1");  
    }  
}  
  
  
// A2 is the child class of A1  
class A2 extends A1  
{  
    @Override  
    A1 foo()  
    {  
        return this;  
    }  
      
    void print()  
    {  
        System.out.println("Inside the class A2");  
    }  
}  
  
// A3 is the child class of A2  
class A3 extends A2  
{  
    @Override  
    A1 foo()  
    {  
        return this;  
    }  
      
    @Override  
    void print()  
    {  
        System.out.println("Inside the class A3");  
    }  
}  
  
public class CovariantExample  
{  
    // main method  
    public static void main(String argvs[])  
    {  
       A1 a1 = new A1();  
         
       // this is ok  
       a1.foo().print();  
         
       A2 a2 = new A2();  
         
       // we need to do the type casting to make it   
       // more clear to reader about the kind of object created   
       ((A2)a2.foo()).print();  
         
       A3 a3 = new A3();  
         
       // doing the type casting  
       ((A3)a3.foo()).print();  
         
    }  
}

Output:

Inside the class A1
Inside the class A2
Inside the class A3

Explanation: उपरोक्त program में, class A3 को class A2 inherit में मिली है, और class A2 को classA1 inherit में मिली है। इस प्रकार, A1 class A2 class A3 का parent है।

अतः class A2 और A3 की कोई भी object भी A1 प्रकार की होती है। चूंकि method का रिटर्न type foo() हर class में समान है, हम वास्तव में उस object के सटीक type को नहीं जानते हैं जो method वास्तव में वापस आ रही है।

हम केवल यह निष्कर्ष निकाल सकते हैं कि लौटाई गई method A1 प्रकार की होगी, जो कि सबसे सामान्य class है। हम निश्चित रूप से यह नहीं कह सकते कि लौटाई गई object A2 या A3 की होगी। यह वह जगह है जहां हमें foo() method से लौटाई गई विशिष्ट प्रकार की वस्तु का पता लगाने के लिए टाइपकास्टिंग करने की आवश्यकता होती है।

यह न केवल कोड वर्बोज़ बनाता है; यह सुनिश्चित करने के लिए program से सटीकता की भी आवश्यकता होती है कि टाइपकास्टिंग ठीक से की जाती है; अन्यथा, ClassCastException प्राप्त करने की उचित संभावनाएँ हैं।

इसे बढ़ाने के लिए, ऐसी स्थिति के बारे में सोचें जहां पदानुक्रमित संरचना 10 – 15 कक्षाओं या उससे भी अधिक हो जाती है, और प्रत्येक class में, method foo() का एक ही रिटर्न प्रकार होता है। यह कोड के पाठक और लेखक को दुःस्वप्न देने के लिए पर्याप्त है।

निष्कर्ष

आशा करता हूँ कि आज के इस आर्टिकल में Covariant Return Type क्या हैं? | Covariant Return Type in Java in Hindi से सम्बंधित आपके सारे आंसर मिल गए होंगे। Read More

आज के इस आर्टिकल में हमने जाना कि Covariant Return Type क्या हैं? | Covariant Return Type in Java in Hindi इस आर्टिकल से संबधित आपका कोई प्रश्न हैं तो आप comment करें में आपकी कमेंट का जबाब जरूर दूंगा।

ऐसे ही IT, Computer Science से रिलेटेड जानकारियाँ पाने के लिए हमारे इस वेबसाइट को सब्सक्राइब कर लीजिये | जिससे आपको हमारी आने वाले नये आर्किल की notification प्राप्त हो सके।

अगर जानकारी अच्छी लगी हो तो अपने दोस्तों और class mate के साथ ये जानकारी जरूर शेयर करें जिससे उनकी भी हेल्प हो सके।

FAQ प्रश्न-

  • Covariant Return Type क्या हैं? | Covariant Return Type in Java in Hindi

    covariant return type specifies करता है कि return type subclass के same direction में भिन्न हो सकता है।

Related Posts

Leave a Comment