जावा प्रोग्रामिंग भाषा में वंशानुक्रम की खोज

जावा प्रोग्रामिंग भाषा में वंशानुक्रम की खोज

विरासत वस्तु-उन्मुख प्रोग्रामिंग की मुख्य अवधारणाओं में से एक है। प्रोग्रामिंग में, वंशानुक्रम शब्द एक ऐसे रिश्ते का प्रतिनिधित्व करता है जिसमें एक बच्चा वर्ग एक अभिभावक वर्ग की स्थिति और व्यवहार को मानता है।





सॉफ्टवेयर विकास में विरासत का उद्देश्य सुरक्षित और विश्वसनीय सॉफ्टवेयर के पुन: उपयोग की सुविधा प्रदान करना है। वंशानुक्रम का उपयोग करने का एक प्रमुख लाभ यह है कि यह आपके कार्यक्रमों में अनावश्यक कोड को समाप्त कर देता है।





दुर्भाग्य से कैसे ठीक करें Google play सेवाएं बंद हो गई हैं

विरासत कैसे काम करती है

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





फलों पर विचार करना एक वास्तविक दुनिया का उदाहरण होगा कि विरासत कैसे काम करती है। यह एक विस्तृत लेबल है जो विभिन्न मदों की एक श्रृंखला को समाहित करने का कार्य करता है।

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



इस तरह विरासत काम करती है।

जावा में वंशानुक्रम का उपयोग करना

विरासत का उपयोग किसी भी प्रोग्रामिंग भाषा में किया जा सकता है जो ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग प्रतिमान का उपयोग करता है। हालाँकि, जिस तरह से वंशानुक्रम का उपयोग किया जाता है वह विशिष्ट प्रोग्रामिंग भाषा पर निर्भर करता है।





उदाहरण के लिए, C++ भी एक ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग लैंग्वेज है . सी ++ समर्थन करता है जिसे एकाधिक विरासत के रूप में जाना जाता है, जबकि जावा केवल एकल विरासत का समर्थन करता है।

इसका मतलब यह है कि जावा में एक अभिभावक वर्ग में कई बाल वर्ग हो सकते हैं, लेकिन प्रत्येक बाल वर्ग में केवल एक ही मूल वर्ग (एकल वंशानुक्रम) हो सकता है। हालांकि, दादा-दादी, माता-पिता और बच्चे के संबंध बनाकर जावा में अप्रत्यक्ष एकाधिक विरासत प्राप्त करने का एक तरीका है।





जावा में पेरेंट क्लास बनाना

सॉफ़्टवेयर आवश्यकताओं के दस्तावेज़ से मूल वर्ग का चयन करने की प्रक्रिया को ऑब्जेक्ट-ओरिएंटेड विश्लेषण के रूप में जाना जाता है। इस प्रक्रिया के दौरान वाक्यांश का प्रयोग अक्सर संभावित विरासत संबंधों की पहचान करने के लिए किया जाता है। ऊपर दिए गए हमारे उदाहरण से आप यह देख पाएंगे कि फल हमारा मूल वर्ग होगा।

फल अभिभावक वर्ग उदाहरण


public class Fruit {
//Variable Declaration
protected String seed;
protected String skinColor;
protected String taste;
//Default Constructor
public Fruit(){
seed = '';
skinColor ='';
taste ='';
}
//Primary Constructor
public Fruit(String seed, String skinColor, String taste){
this.seed = seed;
this.skinColor = skinColor;
this.taste = taste;
}
//getters and setters
public String getSeed() {
return seed;
}
public void setSeed(String seed) {
this.seed = seed;
}
public String getSkinColor() {
return skinColor;
}
public void setSkinColor(String skinColor) {
this.skinColor = skinColor;
}
public String getTaste() {
return taste;
}
public void setTaste(String taste) {
this.taste = taste;
}
//eat method
public void eat(){
//general code on how to eat a fruit
}
//juice method
public void juice() {
//general code on how to juice a fruit
}
}

उपरोक्त मूल वर्ग के सबसे उल्लेखनीय पहलुओं में से एक एक्सेस संशोधक है जिसका उपयोग प्रत्येक चर घोषणा के साथ किया जाता है। संरक्षित एक्सेस संशोधक मूल वर्ग में उपयोग के लिए आदर्श है क्योंकि यह गैर-बाल वर्गों को मूल वर्ग की डेटा विशेषताओं तक पहुंच प्राप्त करने से रोकता है।

कोड में और नीचे आपको कंस्ट्रक्टर, गेटर्स और सेटर्स से परिचित कराया जाता है जो किसी भी जावा क्लास के लिए सामान्य बिल्डिंग ब्लॉक हैं। अंत में, आपको दो विधियों (रस और खाने) से परिचित कराया जाता है जो हमारे कार्यक्रम के मूल वर्ग में बनाई गई हैं क्योंकि वे सभी फलों के लिए सार्वभौमिक हैं - सभी फलों को खाया और जूस किया जा सकता है।

जावा में चाइल्ड क्लासेस बनाना

बाल वर्गों को आमतौर पर विशेष या व्युत्पन्न वर्ग कहा जाता है क्योंकि वे माता-पिता से राज्य और व्यवहार प्राप्त करते हैं, और अक्सर इन विशेषताओं को अधिक विशिष्ट होने के लिए अनुकूलित करते हैं।

हमारे उदाहरण को जारी रखते हुए, आपको यह देखने में सक्षम होना चाहिए कि नारंगी उपरोक्त फल वर्ग का एक उपयुक्त बाल वर्ग क्यों होगा।

ऑरेंज चाइल्ड क्लास उदाहरण


public class Orange extends Fruit{
//variable declaration
private int supremes;
//default constructor
public Orange() {
supremes = 0;
}
//primary constructor
public Orange(String seed, String skinColor, String taste, int supremes){
super(seed, skinColor, taste);
this.supremes = supremes;
}
//getters and setters
public int getsupremes() {
return supremes;
}
public void setsupremes(int supremes) {
this.supremes = supremes;
}
//eat method
public void eat(){
//how to eat an orange
}
//juice method
public void juice() {
//how to juice and orange
}
//peel method
public void peel(){
//how to peel an orange
}
}

एक नियमित जावा वर्ग की घोषणा कैसी दिखती है, और हमारे ऊपर हमारे कोड में क्या अंतर है। विस्तार कीवर्ड वह है जो जावा में विरासत को संभव बनाने के लिए उपयोग किया जाता है।

बाल वर्ग (नारंगी) के ऊपर हमारे उदाहरण में मूल वर्ग (फल) का विस्तार होता है। इसलिए, अब फल वर्ग की स्थिति और व्यवहार को नारंगी वर्ग द्वारा पहुँचा और संशोधित किया जा सकता है।

हमारे नारंगी वर्ग की अनूठी विशेषता को चर नाम सुपरमेम्स (जो संतरे में पाए जाने वाले छोटे खंडों का आधिकारिक नाम है) से पहचाना जाता है। यहीं पर विशेषज्ञता काम आती है; सभी फलों में सर्वोच्च गुण नहीं होते हैं, लेकिन सभी संतरे होते हैं, इसलिए नारंगी वर्ग के लिए सर्वोच्च चर को आरक्षित करना तर्कसंगत है।

पहले से मौजूद खाने और रस के तरीकों में छील विधि जोड़ना भी तर्कसंगत है क्योंकि हालांकि सभी फलों को छील नहीं किया जा सकता है, संतरे अक्सर छील जाते हैं।

आपको यह ध्यान रखना चाहिए कि यदि हम मौजूदा खाने और रस के तरीकों को बदलने का इरादा नहीं रखते हैं, तो हमें उन्हें अपने नारंगी वर्ग में शामिल करने की आवश्यकता नहीं होगी। नारंगी वर्ग की विधियाँ फल वर्ग में किसी भी समान विधि को ओवरराइड करती हैं। तो अगर सभी फलों को एक ही तरह से खाया और जूस किया जाता, तो हमें नारंगी वर्ग में इन विधियों को बनाने की आवश्यकता नहीं होती।

भूमिका निर्माता विरासत में खेलते हैं

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

हमारे उदाहरण पर वापस जाने पर, हर बार एक नई नारंगी वस्तु बनने पर एक फल वस्तु भी बनती है क्योंकि एक संतरा एक फल है।

पर्दे के पीछे, जब एक चाइल्ड क्लास ऑब्जेक्ट बनाया जाता है, तो पैरेंट क्लास के कंस्ट्रक्टर को पहले चाइल्ड क्लास के कंस्ट्रक्टर को बुलाया जाता है। उपरोक्त हमारे नारंगी बाल वर्ग में, यदि बिना किसी पैरामीटर के एक नारंगी वस्तु बनाई जाती है, तो हमारे डिफ़ॉल्ट फल वर्ग के निर्माता को बुलाया जाएगा, उसके बाद हमारे डिफ़ॉल्ट नारंगी वर्ग के ठेकेदार को बुलाया जाएगा।

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

अब आप जावा में वंशानुक्रम का उपयोग कर सकते हैं

इस लेख से, आप यह जानने में सक्षम थे कि विरासत क्या है, यह कैसे काम करती है, और प्रोग्रामिंग में यह इतनी महत्वपूर्ण अवधारणा क्यों है। अब आप जावा प्रोग्रामिंग भाषा का उपयोग करके अपने वंशानुक्रम संबंध बना सकते हैं। इसके अलावा, अब आप जानते हैं कि दादा-दादी संबंध बनाकर जावा के एकल वंशानुक्रम नियम को कैसे प्राप्त किया जाए।

छवि क्रेडिट: एंड्रियास वोहल्फहर्ट / पेक्सल्स

साझा करना साझा करना कलरव ईमेल विरासत के साथ अपने ऑब्जेक्ट-ओरिएंटेड कोड को कैसे व्यवस्थित करें

ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग सही होने का मतलब है कि आपको इनहेरिटेंस के बारे में जानने की जरूरत है और यह कैसे कोडिंग को आसान बना सकता है और त्रुटियों को कम कर सकता है।

आगे पढ़िए
संबंधित विषय
  • प्रोग्रामिंग
  • जावा
  • वस्तु उन्मुख कार्यकर्म
लेखक के बारे में कदीशा कीन(21 लेख प्रकाशित)

कदीशा कीन एक पूर्ण-स्टैक सॉफ़्टवेयर डेवलपर और तकनीकी/प्रौद्योगिकी लेखक हैं। उसके पास कुछ सबसे जटिल तकनीकी अवधारणाओं को सरल बनाने की विशिष्ट क्षमता है; उत्पादन सामग्री जिसे किसी भी तकनीकी नौसिखिए द्वारा आसानी से समझा जा सकता है। उसे लिखने, दिलचस्प सॉफ्टवेयर विकसित करने और दुनिया की यात्रा (वृत्तचित्रों के माध्यम से) करने का शौक है।

कदीशा कीन . की अन्य फ़िल्में-टीवी शो

हमारे न्यूज़लेटर की सदस्यता लें

तकनीकी युक्तियों, समीक्षाओं, निःशुल्क ई-पुस्तकों और अनन्य सौदों के लिए हमारे न्यूज़लेटर से जुड़ें!

सब्सक्राइब करने के लिए यहां क्लिक करें