ইনহেরিটেন্স (inheritance) যেকোন অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং এর জন্য এক অনন্য ফিচার (feature).

এটি খুবই একটি সাধারণ ধারণা। ধরা যাক, আপনার বাবার একটি গাড়ি আছে, অর্থাৎ এটি আপনারও গাড়ি, আবার আপনার নিজের কেনা একটি গাড়িও থাকতে পারে। এখানে আপনার বাবার গাড়িটি আপনার কাছে ইনহেরিট হচ্ছে।

প্রোগ্রামিং এর ক্ষেত্রেও তাই। যখন একটি প্যারেন্ট ক্লাসের (Parent Class) কোন একটি অ্যাট্রিবিউট (Attribute) বা মেথড (Method), চাইল্ড ক্লাসে (Child Class) ইনহেরিট হয় তখন তাকে ইনহেরিটেন্স বলে

আগের পর্বে আমরা শুধুমাত্র একটা ক্লাস নিয়ে আলোচনা করেছি। এই পর্বে আমরা একাধিক ক্লাস ব্যবহার করে ইনহেরিটেন্স এর উদাহরণ দেখে নেব।

# This is an example of inheritance in Python
class MathClass: # Parent Class
    def __init__(self,x,y):
        self.x=x
        self.y=y
    def Multiply_function(self):
        z=self.x*self.y
        return z
        
class MathClass2(MathClass): # Child Class
    def __init__(self,x,y):
        self.x=x
        self.y=y
    def Division_function(self):
        z=self.x/self.y
        return z
     
FirstObject=MathClass(5,10) # creating an object
SecondObject=MathClass2(4,2) # creating an object
 
print(FirstObject.Multiply_function()) # Accessing a method
print(SecondObject.Division_function()) # Accessing a method
print(SecondObject.Multiply_function()) # Accessing a method using inheritance

ফলাফল-

50                                                                                                  
2.0                                                                                                 
8

এখানে দুইটা ক্লাস আছে, MathClass এবং MathClass2. এখন ২৩ নম্বর লাইনে SecondObject এ Multiply_function() কল করা হয়েছে; কিন্তু MathClass2 তে এই নামে কোন ফাংশন নেই। মূলত এই ফাংশনটা MathClass থেকে ইনহেরিট হয়েছে।

আগে আমরা self কিওয়ার্ডটি ব্যবহার করছিলাম, কিন্ত ইনহেরিটেন্স এর জন্য ক্লাসের ভিতর যে ক্লাসকে ইনহেরিট করতে চাচ্ছি সেটার নাম দিতে হয় যেটা ১০ নম্বর লাইনে দেখানো হয়েছে।

প্যারেন্ট ক্লাস (Parent Class)

যে ক্লাসকে ইনহেরিট করা হবে সেটাকে প্যারেন্ট ক্লাস বলা হয়। উপরের উদাহরণে ২য় লাইনে যে MathClass ব্যবহার করা হয়েছে এটা প্যারেন্ট ক্লাস বা বেজ ক্লাস (Base Class)।

চাইল্ড ক্লাস (Child Class)

যে ক্লাসে কোন ক্লাসকে ইনহেরিট করা হবে তাকে চাইল্ড ক্লাস বলা হয়। উপরের উদাহরণের ১০ম লাইনে MathClass2 একটি চাইল্ড ক্লাস।