ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग में एक महत्वपूर्ण अवधारणा विरासत है। यह एक रास्ता प्रदान करता है वस्तुओं एक दूसरे के साथ संबंधों को परिभाषित करने के लिए। जैसा कि नाम से पता चलता है, एक वस्तु किसी अन्य वस्तु से विशेषताओं को प्राप्त करने में सक्षम है।
अधिक ठोस शब्दों में, एक वस्तु अपने बच्चों को अपने राज्य और व्यवहार पर पारित करने में सक्षम है। काम के लिए विरासत के लिए, वस्तुओं को एक-दूसरे के साथ समान रूप से विशेषताओं की आवश्यकता होती है।
में जावा, कक्षाएं अन्य वर्गों से ली जा सकती हैं, जिन्हें दूसरों से लिया जा सकता है, और इसी तरह। इसका कारण यह है कि वे इसके ऊपर के वर्ग से विशेषताएं प्राप्त कर सकते हैं, सबसे ऊपरी वस्तु वर्ग तक।
जावा वंशानुक्रम का एक उदाहरण
मान लीजिए कि हम मानव नामक एक वर्ग बनाते हैं जो हमारी शारीरिक विशेषताओं का प्रतिनिधित्व करता है। यह एक सामान्य वर्ग है जो आपको, मुझे या दुनिया में किसी का भी प्रतिनिधित्व कर सकता है। इसका राज्य पैरों की संख्या, हथियारों की संख्या और रक्त के प्रकार जैसी चीजों का ट्रैक रखता है। इसमें खाने, सोने और चलने जैसे व्यवहार होते हैं।
मानव समग्र रूप से यह जानने के लिए अच्छा है कि हम सभी को एक जैसा बनाता है लेकिन उदाहरण के लिए, लिंग भेद के बारे में मुझे नहीं बता सकता। उसके लिए, हमें दो नए वर्ग प्रकार बनाने की आवश्यकता होगी जिसे मैन एंड वूमन कहा जाता है। इन दो वर्गों की स्थिति और व्यवहार एक दूसरे से बहुत भिन्न होंगे, सिवाय उनके जो मानव से विरासत में मिले हैं।
इसलिए, वंशानुक्रम हमें माता-पिता के राज्य और उसके बच्चे के व्यवहार को शामिल करने की अनुमति देता है। बाल वर्ग तब राज्य और व्यवहार का विस्तार कर सकता है जो उसके द्वारा प्रदर्शित मतभेदों को प्रतिबिंबित करता है। इस अवधारणा को याद रखने का सबसे महत्वपूर्ण पहलू यह है कि बाल वर्ग माता-पिता का अधिक विशिष्ट संस्करण है।
सुपरक्लास क्या है?
दो वस्तुओं के बीच संबंध में, एक सुपरक्लास उस वर्ग को दिया गया नाम है जिसे विरासत में मिला है। यह एक सुपर डुपर क्लास की तरह लगता है, लेकिन याद रखें कि यह अधिक सामान्य संस्करण है। उपयोग करने के लिए बेहतर नाम आधार वर्ग या बस मूल वर्ग हो सकता है।
इस बार एक अधिक वास्तविक दुनिया का उदाहरण लेने के लिए, हम व्यक्ति नामक एक सुपरक्लास रख सकते हैं। इसकी स्थिति व्यक्ति का नाम, पता, ऊंचाई और वजन रखती है, और खरीदारी, बिस्तर बनाना और टीवी देखना जैसे व्यवहार करती है।
हम दो नए वर्ग बना सकते हैं जिन्हें व्यक्ति से छात्र और कार्यकर्ता कहा जाता है। वे अधिक विशिष्ट संस्करण हैं, क्योंकि उनके नाम, पते, टीवी देखना और खरीदारी करना शामिल है, लेकिन उनकी विशेषताएं भी हैं जो एक दूसरे से भिन्न हैं।
कार्यकर्ता के पास एक राज्य हो सकता है जो नौकरी का शीर्षक और रोजगार का स्थान रखता है जबकि छात्र अध्ययन के एक क्षेत्र और सीखने की एक संस्था पर डेटा रख सकता है।
सुपरक्लास उदाहरण:
कल्पना कीजिए कि आप एक व्यक्ति वर्ग को परिभाषित करते हैं:
सार्वजनिक वर्ग का व्यक्ति। { }
इस वर्ग का विस्तार करके एक नया वर्ग बनाया जा सकता है:
सार्वजनिक वर्ग कर्मचारी व्यक्ति का विस्तार करता है। { }
कर्मचारी वर्ग को कर्मचारी वर्ग का सुपरक्लास कहा जाता है।
एक उपवर्ग क्या है?
दो वस्तुओं के बीच संबंध में, एक उपवर्ग उस वर्ग को दिया गया नाम है जो सुपरक्लास से विरासत में मिला है। यद्यपि यह थोड़ा अजीब लगता है, याद रखें कि यह सुपरक्लास का अधिक विशिष्ट संस्करण है।
पिछले उदाहरण में, छात्र और कार्यकर्ता उपवर्ग हैं।
उपवर्गों को व्युत्पन्न वर्गों, बाल वर्गों या विस्तारित कक्षाओं के रूप में भी जाना जा सकता है।
मेरे पास कितने उपवर्ग हैं?
आप जितने चाहें उतने उपवर्ग हो सकते हैं। सुपरक्लास में कितने उपवर्ग हो सकते हैं, इसकी कोई सीमा नहीं है। इसी तरह, विरासत के स्तर की संख्या पर कोई सीमा नहीं है। वर्गों का एक पदानुक्रम सामान्यता के एक निश्चित क्षेत्र पर बनाया जा सकता है।
वास्तव में, यदि आप जावा एपीआई पुस्तकालयों को देखते हैं तो आपको विरासत के कई उदाहरण दिखाई देंगे। एपीआई में हर वर्ग java.lang नामक एक वर्ग से विरासत में मिला है। वस्तु। उदाहरण के लिए, जब भी आप JFrame ऑब्जेक्ट का उपयोग करते हैं, तो आप वंशानुक्रम की लंबी पंक्ति के अंत में होते हैं:
java.lang। वस्तु। java.awt द्वारा बढ़ाया गया। घटक। java.awt द्वारा बढ़ाया गया। कंटेनर। java.awt द्वारा बढ़ाया गया। खिड़की। java.awt द्वारा बढ़ाया गया। फ़्रेम। javax.swing द्वारा विस्तारित। JFrame।
जावा में, जब एक उपवर्ग एक सुपरक्लास से विरासत में मिला, तो इसे सुपरक्लास के "विस्तार" के रूप में जाना जाता है।
क्या मेरा सुपरक्लास कई सुपरक्लास से प्रभावित हो सकता है?
नहीं। जावा में, एक उपवर्ग केवल एक सुपरक्लास का विस्तार कर सकता है।
वंशानुक्रम का उपयोग क्यों करें?
वंशानुक्रम प्रोग्रामर कोड को फिर से उपयोग करने की अनुमति देता है जो उन्होंने पहले ही लिखा है। मानव वर्ग के उदाहरण में, हमें रक्त प्रकार को धारण करने के लिए मनुष्य और महिला वर्ग में नए क्षेत्रों को बनाने की आवश्यकता नहीं है क्योंकि हम मानव वर्ग से विरासत में प्राप्त एक का उपयोग कर सकते हैं।
विरासत का उपयोग करने का एक और लाभ यह है कि यह हमें एक उपवर्ग का इलाज करने देता है जैसे कि यह एक सुपरक्लास था। उदाहरण के लिए, मान लें कि किसी प्रोग्राम ने मैन और वुमन ऑब्जेक्ट्स के कई उदाहरण बनाए हैं। कार्यक्रम को इन सभी वस्तुओं के लिए नींद के व्यवहार को कॉल करने की आवश्यकता हो सकती है। क्योंकि नींद का व्यवहार मानव सुपरक्लास का एक व्यवहार है, हम सभी पुरुष और महिला वस्तुओं को एक साथ जोड़ सकते हैं और उन्हें मान सकते हैं जैसे कि वे मानव वस्तुएँ हैं।