Python Inheritance Part - 01

Inheritance কি?

Inhertitance হচ্ছে এমন এক পদ্ধতি যার মাধ্যমে একটি ক্লাসের প্রোপার্টি , মেথড অন্য কোন ক্লাসকে দেয়া যায়। এক্ষেত্রে যার থেকে ইনহেরিট করা হয়েছে তাকে বলে প্যারেন্ট ক্লাস এবং যার কাছে ইনহেরিট করা হয়েছে তাকে বলে চাইল্ড ক্লাস।

Syntax of inheritance

class Parent:
    pass

class Child(Parent):
    pass

অর্থাৎ আমরা যে ক্লাসকে ইনহেরিট করতে চাই সেই ক্লাসের নাম চাইল্ড ক্লাসের নামের পাশে থাকা প্যারেন্থেসিস এর মধ্যে লিখে দিলেই হবে।

উদাহারনঃ

class Father:
    car = 'BMW M5'
    house = '5 floor'
    cash = '10 core'

class Child(Father):
    pass

child_1 = Child()
print(child_1.car)

#Output --> BMW M5

উপরে আমরা দুইটি ক্লাস তৈরি করেছি। একটি ক্লাস হচ্ছে Father ( প্যারেন্ট ক্লাস ) অন্যটি হচ্ছে Child ( চাইল্ড ক্লাস )। প্যারেন্ট ক্লাস অর্থাৎ Father class এর প্রোপার্টি হচ্ছে car , house , cash । এখন যদি আমরা Father class কে Child class এর মধ্যে ইনহেরিট করি তাহলে Child class প্যারেন্ট ক্লাস অর্থাৎ Father class এর সমস্ত কিছু অ্যাক্সেস করতে পারবে। এখানে child_1 variable এর মধ্যে Child class তৈরি করা হয়েছে। এখন child_1.car প্রিন্ট দিলে Output আসবে BMW M5 । একইভাবে child_1.cash , child_1.hose প্রিন্ট দিলে অউটপুট আসবে 10 core এবং 5 floor ।

Types of Inheritance

  • Single Inheritance

  • Multiple Inheritance

  • Multilevel Inheritance

  • Hierarchical Inheritance

  • Hybrid Inheritance

Single Inheritance


কোন চাইল্ড ক্লাসের প্যারেন্ট ক্লাস যদি একটি হয় তাহলে তাকে Single Inheritance বলে।

class A:
    pass
class B(A):
    pass

উপরের কোড এ A হচ্ছে প্যারেন্ট ক্লাস এবং B হচ্ছে চাইল্ড ক্লাস। B class এর শুধুমাত্র একটি প্যারেন্ট ক্লাস আছে তাই এটি Single Inheritance। এছাড়া উপরে যে Father and Child ক্লাস এর উদাহারন দেয়া হয়েছে সেখানে Child class টিও Single Inheritance এর উদাহারন। কারন Child class এ শুধুমাত্র একটি ক্লাস ইনহেরিট করা হয়েছে।


Multiple Inheritance

কোন চাইল্ড ক্লাসের প্যারেন্ট ক্লাস যদি একাধিক হয় তাহলে তাকে Multiple Inheritance বলে।

class Father:
    car = 'BMW M5'
    house = '5 floor'
    cash = '10 core'

class Mother:
    phone = 'Smasung Galaxy S25 Ultra'


class Child(Father , Mother):
    pass

child_1 = Child()
print(child_1.car)
print(child_1.phone)

#Output --> BMW M5
#Output --> Smasung Galaxy S25 Ultra

উপরের Child class এর মধ্যে দুইটি প্যারেন্ট ক্লাস ( Father , Mother ) ইনহেরিট করা হয়েছে। সেইক্ষেত্রে চাইল্ড ক্লাস দুইটি প্যারেন্ট ক্লাস এর প্রোপার্টি সহ যাবতীয় সবকিছু পাবে। তাই একে Multiple Inheritance বলে হয়


Multilevel Inheritance

Multilevel inheritance এর কন্সেপ্ট হচ্ছে বাপেরও বাপ থাকে। অর্থাৎ এটি এমন ধরনের ইনহেরিট্যান্স পদ্ধতি যাতে চাইল্ড ক্লাসের যে প্যারেন্ট ক্লাস থাকে সেই প্যারেন্ট ক্লাসেরও প্যারেন্ট থাকে।

অর্থাৎ , আমাদের বাবা আমাদের দাদার থেকে তার জায়গা সম্পত্তি পায়। আবার আমরা আমাদের বাবার থেকে জায়গা - সম্পত্তি পাবো। এভাবেlti কিন্তু প্রোপার্টি গুলো হস্তান্তর হতে থাকবে। এটাই Mulevel Inheritance

Syntax of Multilevel Inheritance:

class A:
    pass
class B(A):
    pass
class C(B):
    pass
class D(C):
    pass
class GrandFather:
    land = '10 katha'
    house = '5 floor'
    car = 'TOYOTA X-COROLLA'

class Father(GrandFather):
    phone = 'I Phone XS MAX'

class Child(Father):
    pass

child_1 = Child()
print(child_1.phone) #I Phone XS MAX
print(child_1.land)  #10 katha
print(child_1.house) #5 floor

উপরের GrandFather ক্লাস এর প্রোপার্টি হচ্ছে land , house , car। এরপর Father class এ GrandFather class টি ইনহেরিট করা হয়েছে। যার কারনে Father class টি land , house , car প্রোপার্টি পেয়েছে সাথে তার নিজের প্রোপার্টি phone তো আছেই। একইভাবে Child class এ Father class ইনহেরিট করা হয়েছে যার ফলে Father class এর সব প্রোপার্টি পেয়েছে।


Hierarchical Inheritance

Hierarchical Inheritance এমন একধরনের ইনহেরিট্যান্স পদ্ধতি যেখানে একটি প্যারেন্ট ক্লাস এর একাধিক চাইল্ড ক্লাস থাকে।

class Parent:
    pass
class Son(Parent):
    pass
class Daughter(Parent):
    pass

এখানে দেখা যাচ্ছে একটি প্যারেন্ট ক্লাস কে অন্য দুইটি চাইল্ড ক্লাসের মধ্যে ইনহেরিট করা হয়েছে। আর এধরনের ইনহেরিট্যান্সকে Hierarchical Inheritance বলে।


Hybrid Inheritance

একাধিক ইনহেরিট্যান্স টাইপ যখন কোন ক্লাসে ইউজ করা হয় তখন তাকে Hybrid Inheritance বলে।

class A:
    pass
class B(A):
    pass
class C(A,B):
    pass
class D(C):
    pass

উপরের কোডে দেখা যাচ্ছে যে B class এ A class inherit করা হয়েছে , C class এ A , B এবং D class এ C কে ইনহেরিট করা হয়েছে। এই ধরনের ইনহেরিট্যান্সকে Hybrid Inheritance বলে

1
Subscribe to my newsletter

Read articles from Ata Alahy Nishan directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Ata Alahy Nishan
Ata Alahy Nishan