ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग में, हम पैरेंट क्लास की विशेषताओं को इनहेरिट कर सकते हैं। मूल वर्ग को बेस क्लास के रूप में जाना जाता है जबकि चाइल्ड क्लास को व्युत्पन्न वर्ग के रूप में जाना जाता है। व्युत्पन्न वर्ग डेटा सदस्यों, बेस क्लास के सदस्य कार्यों को इनहेरिट कर सकता है।
यदि डेटा सदस्य सार्वजनिक हैं, तो उन्हें व्युत्पन्न वर्ग, समान वर्ग और कक्षा के बाहर पहुँचा जा सकता है। यदि डेटा सदस्यों को संरक्षित किया जाता है, तो उन्हें केवल व्युत्पन्न और समान वर्ग द्वारा पहुँचा जा सकता है, लेकिन कक्षा के बाहर, उन्हें एक्सेस नहीं किया जा सकता है। यदि डेटा सदस्य निजी हैं, तो केवल वही वर्ग उन तक पहुंच सकता है।
यहाँ C++ भाषा में वंशानुक्रम का एक उदाहरण दिया गया है,
उदाहरण
#include <bits/stdc++.h> using namespace std; class Base { public: int a; protected: int b; private: int c; }; class Derived : public Base { public: int x; }; int main() { Derived d; d.a = 10; d.x = 20; cout << "Derived class data member vale : " << d.x << endl; cout << "Base class data member value : " << d.a << endl; return 0; }
आउटपुट
Derived class data member vale : 20 Base class data member value : 10
उपरोक्त कार्यक्रम में, व्युत्पन्न वर्ग बेस क्लास और उसके डेटा सदस्यों को विरासत में मिला है। व्युत्पन्न वर्ग वस्तु d बनाया गया है और आधार और व्युत्पन्न वर्ग a और x के डेटा सदस्यों को कॉल करने के लिए उपयोग किया जाता है। लेकिन यह बेस क्लास के वेरिएबल बी और सी तक नहीं पहुंच सकता क्योंकि वे संरक्षित और निजी हैं, अगर हम उन्हें एक्सेस करने का प्रयास करेंगे तो यह त्रुटियां दिखाएगा।
Derived d; d.a = 10; d.x = 20;