পলিমরফিজম হল অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং (OOP) এর একটি গুরুত্বপূর্ণ ধারণা, যা একাধিক অবজেক্টের জন্য একই নামের মেথড ব্যবহার করতে দেয়, কিন্তু তাদের কার্যকরী আচরণ ভিন্ন হয়। এটি বিভিন্ন ক্লাসের অবজেক্টগুলিকে একত্রে ব্যবহার করার সময় প্রোগ্রামের স্থিতিশীলতা এবং সুবিধা বৃদ্ধি করে।
পলিমরফিজমের ধরন
পলিমরফিজম প্রধানত দুই ধরনের হয়:
কম্পাইল টাইম পলিমরফিজম (Compile-time Polymorphism):
- এটি মেথড ওভারলোডিং (Method Overloading) এবং অপারেটর ওভারলোডিং (Operator Overloading) এর মাধ্যমে অর্জিত হয়।
- মেথড ওভারলোডিংয়ের মাধ্যমে একটি ক্লাসে একই নামের কিন্তু বিভিন্ন প্যারামিটার টাইপ বা সংখ্যা বিশিষ্ট মেথড তৈরি করা হয়।
- অপারেটর ওভারলোডিংয়ের মাধ্যমে মৌলিক অপারেটরগুলির (যেমন: +, -, *, /) ব্যবহারিক আচরণ পরিবর্তন করা হয়।
রানটাইম পলিমরফিজম (Runtime Polymorphism):
- এটি মেথড ওভাররাইডিং (Method Overriding) এর মাধ্যমে অর্জিত হয়, যেখানে সাবক্লাস সুপারক্লাসের মেথডকে পুনঃসংজ্ঞায়িত করে।
- এটি সাধারণত অভ্যন্তরীণ সম্পর্কযুক্ত ক্লাসের মধ্যে ঘটে।
উদাহরণ
১. কম্পাইল টাইম পলিমরফিজম (মেথড ওভারলোডিং)
class MathOperations:
def add(self, a, b):
return a + b
def add(self, a, b, c):
return a + b + c
# অবজেক্ট তৈরি করা
math_op = MathOperations()
# প্রথম দুটি প্যারামিটার নিয়ে ব্যবহার করা
result1 = math_op.add(5, 10) # এর জন্য SyntaxError হবে
print(result1)
# তিনটি প্যারামিটার নিয়ে ব্যবহার করা
result2 = math_op.add(5, 10, 15)
print(result2) # Output: 30
নোট: পিথনের মতো ভাষায় মেথড ওভারলোডিং সঠিকভাবে কাজ না করতে পারে। তবে আমরা অন্য প্যারামিটার ব্যবহার করে পলিমরফিজম অর্জন করতে পারি।
২. রানটাইম পলিমরফিজম (মেথড ওভাররাইডিং)
class Animal:
def sound(self):
return "Animal sound"
class Dog(Animal):
def sound(self):
return "Bark"
class Cat(Animal):
def sound(self):
return "Meow"
# অবজেক্ট তৈরি করা
animals = [Dog(), Cat()]
for animal in animals:
print(animal.sound())
আউটপুট:
Bark
Meow
এখানে Dog এবং Cat ক্লাস দুটি আলাদা আচরণ (মেথড) সরবরাহ করে, যদিও তারা একই নামের sound() মেথড ব্যবহার করছে। এটি রানটাইম পলিমরফিজমের একটি উদাহরণ।
পলিমরফিজমের সুবিধা
- কোড পুনর্ব্যবহারযোগ্যতা: একই মেথড নাম ব্যবহার করে বিভিন্ন ক্লাসের অবজেক্টকে পরিচালনা করা যায়।
- স্থিতিশীলতা: পরিবর্তনের ফলে কোডের বাকি অংশে প্রভাব কম হয়।
- সুবিধাজনক ডেভেলপমেন্ট: কোডের সংগঠন উন্নত হয়, যা ডেভেলপমেন্টকে সহজ করে।
উপসংহার
পলিমরফিজম OOP এর একটি মৌলিক ধারণা যা প্রোগ্রামিংয়ের জন্য ক্ষমতা এবং নমনীয়তা বৃদ্ধি করে। এটি আমাদের একই নামের মেথডের বিভিন্ন বাস্তবায়ন করতে দেয়, যা কোডের পুনর্ব্যবহারযোগ্যতা এবং স্থিতিশীলতা নিশ্চিত করে। OOP এ পলিমরফিজমের ব্যবহার সফটওয়্যার ডেভেলপমেন্টকে আরও কার্যকরী ও সুবিধাজনক করে তোলে।
Read more