सामान्य तौर पर, ओवरराइडिंग में, सुपरक्लास और सबक्लास में विधि का नाम और पैरामीटर समान होते हैं। लेकिन, जब रिटर्निंग टाइप की बात आती है, तो सबक्लास में मेथड सुपरक्लास में मेथड के रिटर्न टाइप के सबटाइप को वापस कर सकता है।
उदाहरण
यदि आप निम्न उदाहरण देखें तो सुपर क्लास में demoMethod() . नामक एक विधि है और यह प्रकार सूची का मान देता है। यदि हम इस पद्धति को ओवरराइड करते हैं तो उपवर्ग में विधि सूची . प्रकार का मान लौटा सकती है (जो सुपरक्लास में है) या, यह सूची का उपप्रकार . भी लौटा सकता है (सुपर क्लास में मेथड का रिटर्न टाइप) जैसे ArrayList, Stack, वेक्टर आदि।
इस परिदृश्य में उप वर्ग विधि एक ArrayList देता है, सुपर क्लास के रिटर्न प्रकार का उप प्रकार यानी List। इस उप प्रकार (ArrayList) को . के रूप में जाना जाता है सहसंयोजक प्रकार ।
उदाहरण
class Test{ int data =100; Test demoMethod(){ return this; } } public class Sample extends Test{ int data = 1000; Sample demoMethod(){ return this; } public static void main(String args[]){ Sample sam = new Sample(); System.out.println(sam.demoMethod().data); } }
आउटपुट
1000