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