অবজেক্ট-অরিয়েন্টেড প্রোগ্রামিং (OOP) তে ইনহেরিটেন্স (Inheritance) এবং পলিমরফিজম (Polymorphism) হল দুটি গুরুত্বপূর্ণ ধারণা। এই দুটি ধারণা ক্লাস এবং অবজেক্টগুলির মধ্যে সম্পর্ক এবং আচরণ নির্ধারণ করতে সাহায্য করে। চলুন, ইনহেরিটেন্স এবং পলিমরফিজম মডেলিং এর বিস্তারিত আলোচনা করি।
১. ইনহেরিটেন্স (Inheritance)
সংজ্ঞা
ইনহেরিটেন্স হল একটি ক্লাসের (সাব-ক্লাস বা ডেরাইভড ক্লাস) অন্য ক্লাস (সুপার ক্লাস বা প্যারেন্ট ক্লাস) থেকে বৈশিষ্ট্য এবং মেথড গ্রহণ করার প্রক্রিয়া।
ভূমিকা
- কোড পুনঃব্যবহার: ইনহেরিটেন্স কোড পুনঃব্যবহারে সহায়ক, কারণ ডেরাইভড ক্লাস প্যারেন্ট ক্লাসের বৈশিষ্ট্য ও মেথড ব্যবহার করতে পারে।
- হায়ারার্কিক্যাল স্ট্রাকচার: এটি একটি হায়ারার্কিক্যাল ক্লাস স্ট্রাকচার তৈরি করে, যেখানে ক্লাসগুলি একটি পেরেন্ট-চাইল্ড সম্পর্কের মাধ্যমে সংযুক্ত থাকে।
- অবজেক্ট গঠন: এটি অবজেক্টগুলির মধ্যে সম্পর্ক বোঝাতে সহায়তা করে, যেমন "একটি কুকুর একটি প্রাণী"।
উদাহরণ
# প্যারেন্ট ক্লাস
class Animal:
def speak(self):
return "Animal sound"
# সাব ক্লাস
class Dog(Animal):
def speak(self):
return "Woof"
class Cat(Animal):
def speak(self):
return "Meow"
এখানে, Dog এবং Cat ক্লাসগুলি Animal ক্লাস থেকে ইনহেরিট করছে এবং তাদের নিজস্ব speak মেথড রয়েছে।
২. পলিমরফিজম (Polymorphism)
সংজ্ঞা
পলিমরফিজম হল একাধিক ক্লাসের মধ্যে একটি সাধারণ মেথড বা বৈশিষ্ট্যকে বিভিন্নভাবে কার্যকর করার ক্ষমতা। এটি সাধারণত মেথড ওভাররাইডিং (Method Overriding) এবং মেথড ওভারলোডিং (Method Overloading) এর মাধ্যমে অর্জিত হয়।
ভূমিকা
- এক্সটেনশিবিলিটি: পলিমরফিজম কোডের এক্সটেনশিবিলিটি বৃদ্ধি করে, কারণ নতুন ক্লাসগুলি পুরানো কোডের সাথে সামঞ্জস্যপূর্ণভাবে কাজ করতে পারে।
- ডাইনামিক ডিসপ্যাচ: এটি রানটাইমে সঠিক মেথড কল করার ক্ষমতা প্রদান করে, যা কোডকে আরও নমনীয় এবং ডাইনামিক করে।
- ইন্টারফেসের ব্যবহার: এটি ইন্টারফেস ব্যবহার করে বিভিন্ন ক্লাসের মধ্যে আচরণগত সামঞ্জস্য নিশ্চিত করে।
উদাহরণ
def animal_sound(animal):
print(animal.speak())
# অবজেক্ট তৈরি
dog = Dog()
cat = Cat()
# পলিমরফিজম ব্যবহার
animal_sound(dog) # Output: Woof
animal_sound(cat) # Output: Meow
এখানে, animal_sound ফাংশনটি বিভিন্ন ধরনের অবজেক্ট (কুকুর এবং বিড়াল) নিয়ে কাজ করছে, কিন্তু এটি সঠিক speak মেথড কল করছে।
উপসংহার
ইনহেরিটেন্স এবং পলিমরফিজম OOP তে একটি গুরুত্বপূর্ণ ভূমিকা পালন করে। ইনহেরিটেন্স কোড পুনঃব্যবহার এবং সংগঠিত কাঠামো তৈরি করতে সহায়তা করে, যখন পলিমরফিজম ডাইনামিক আচরণ এবং এক্সটেনশিবিলিটি নিশ্চিত করে। এই দুটি ধারণা সফটওয়্যার ডিজাইন ও উন্নয়নে মডুলার এবং রক্ষণাবেক্ষণযোগ্য কোড তৈরি করতে সহায়ক।