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