Inheritance এবং Polymorphism

Object-Oriented Programming in Parrot (অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং) - প্যারট (Parrot) - Computer Programming

287

Inheritance এবং Polymorphism হল অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং (OOP)-এর দুটি গুরুত্বপূর্ণ ধারণা। এই দুটি ধারণা কোড পুনঃব্যবহারযোগ্যতা, কার্যকারিতা এবং ফ্লেক্সিবিলিটি নিশ্চিত করতে সাহায্য করে। চলুন এই দুটি ধারণা বিস্তারিতভাবে জানি।


Inheritance (উত্তরাধিকার)

Inheritance হল একটি মৌলিক ধারণা যেখানে একটি নতুন ক্লাস পুরনো ক্লাসের বৈশিষ্ট্য এবং আচরণ (ফাংশন এবং প্রোপার্টি) উত্তরাধিকারসূত্রে লাভ করে। এটি কোডের পুনঃব্যবহারযোগ্যতা এবং সম্প্রসারণযোগ্যতা বাড়ায়।

Inheritance এর উদ্দেশ্য:

  • কোডের পুনঃব্যবহার: নতুন ক্লাস পুরনো ক্লাসের ফাংশন এবং প্রোপার্টি ব্যবহার করতে পারে, ফলে কোড পুনঃলিখন করার প্রয়োজন হয় না।
  • কোড সহজ রাখা: কিছু মৌলিক বৈশিষ্ট্য একটি অভিভাবক (parent) ক্লাসে সংজ্ঞায়িত করা হয় এবং ঐ বৈশিষ্ট্যগুলো সব সাবক্লাস (subclasses) দ্বারা ব্যবহার করা হয়।
  • সম্প্রসারণযোগ্যতা: নতুন বৈশিষ্ট্য এবং ফাংশন যুক্ত করার সময় পুরনো কোডে কোনো পরিবর্তন করার প্রয়োজন পড়ে না।

Inheritance এর ধরন:

  1. Single Inheritance: একটি ক্লাস শুধুমাত্র একটি প্যারেন্ট ক্লাস থেকে ইনহেরিট করে।
  2. Multiple Inheritance: একটি ক্লাস একাধিক প্যারেন্ট ক্লাস থেকে ইনহেরিট করে।
  3. Multilevel Inheritance: একটি ক্লাস অন্য একটি ক্লাস থেকে ইনহেরিট করে, এবং সেই ক্লাস আবার অন্য একটি ক্লাস থেকে ইনহেরিট করে।
  4. Hierarchical Inheritance: একাধিক ক্লাস একটি সাধারণ প্যারেন্ট ক্লাস থেকে ইনহেরিট করে।

Inheritance এর উদাহরণ (Python)

# Parent Class (অভিভাবক ক্লাস)
class Animal:
    def __init__(self, name):
        self.name = name

    def speak(self):
        return "Animal speaks"

# Child Class (সাবক্লাস)
class Dog(Animal):
    def speak(self):
        return f"{self.name} barks"

class Cat(Animal):
    def speak(self):
        return f"{self.name} meows"

# Instantiating objects
dog = Dog("Buddy")
cat = Cat("Whiskers")

print(dog.speak())  # Output: Buddy barks
print(cat.speak())  # Output: Whiskers meows

এখানে:

  • Dog এবং Cat ক্লাসগুলো Animal ক্লাস থেকে ইনহেরিট করেছে।
  • speak() মেথডটি সাবক্লাসে রিপ্লেসড করা হয়েছে (এটি method overriding বলা হয়)।

Polymorphism (পলিমরফিজম)

Polymorphism হল একটি ধারণা যেখানে একটি একক ইন্টারফেস বা মেথড একাধিকভাবে কাজ করে, অর্থাৎ একই নামের মেথড বিভিন্ন ক্লাসে ভিন্নভাবে আচরণ করতে পারে। এটি দুই প্রকারের হয়ে থাকে:

  1. Compile-time Polymorphism (Method Overloading): একই মেথড নামের সাথে ভিন্ন ভিন্ন প্যারামিটার ব্যবহার করা।
  2. Runtime Polymorphism (Method Overriding): প্যারেন্ট ক্লাসে থাকা মেথডকে সাবক্লাসে রিপ্লেস করা।

Polymorphism এর উদ্দেশ্য:

  • কোডের নমনীয়তা (flexibility) এবং পুনঃব্যবহারযোগ্যতা বাড়ানো।
  • একাধিক অবজেক্ট বা ক্লাসের একই ইন্টারফেস ব্যবহার করে ভিন্ন ভিন্ন আচরণ সৃষ্টি করা।
  • একাধিক ধরনের অবজেক্ট একই ইন্টারফেস বা মেথড ব্যবহার করে।

Polymorphism এর উদাহরণ (Python)

# Parent Class (অভিভাবক ক্লাস)
class Animal:
    def speak(self):
        raise NotImplementedError("Subclass must implement abstract method")

# Child Class (সাবক্লাস)
class Dog(Animal):
    def speak(self):
        return "Dog barks"

class Cat(Animal):
    def speak(self):
        return "Cat meows"

# Function to demonstrate Polymorphism
def animal_sound(animal):
    print(animal.speak())

# Instantiating objects
dog = Dog()
cat = Cat()

# Demonstrating Polymorphism
animal_sound(dog)  # Output: Dog barks
animal_sound(cat)  # Output: Cat meows

এখানে:

  • speak() মেথডটি প্যারেন্ট ক্লাস Animal-এ অব্যাহত রেখেছে, কিন্তু সাবক্লাস Dog এবং Cat তাদের নিজস্ব speak() মেথডে এটি রিপ্লেস করেছে।
  • Polymorphism দ্বারা আমরা একটি সাধারণ ইন্টারফেস (animal_sound()) ব্যবহার করে ভিন্ন ভিন্ন ক্লাসের অবজেক্টের আচরণ দেখতে পাচ্ছি।

Method Overloading (Compile-time Polymorphism) উদাহরণ:

Python এ method overloading সরাসরি সাপোর্ট করে না, তবে এটি ইনপুট প্যারামিটার সংখ্যা এবং প্রকার অনুযায়ী মেথডের আচরণ পরিবর্তন করা যায়।

class Calculator:
    def add(self, a, b=0):
        return a + b

calc = Calculator()
print(calc.add(10))    # Output: 10
print(calc.add(10, 5)) # Output: 15

এখানে:

  • add() মেথডে এক বা দুইটি প্যারামিটার গ্রহণ করা হয়েছে, এবং এটি এক ধরনের মেথডওভারলোডিং এর উদাহরণ হিসেবে কাজ করছে।

Inheritance এবং Polymorphism এর সম্পর্ক

  • Inheritance এবং Polymorphism একসাথে কোডের পুনঃব্যবহারযোগ্যতা এবং নমনীয়তা বৃদ্ধি করে।
  • ইনহেরিটেন্সের মাধ্যমে, একটি ক্লাস অন্য ক্লাস থেকে আচরণ (methods) লাভ করে, এবং polymorphism এর মাধ্যমে সেই আচরণকে পরিবর্তন করা বা একই আচরণ বিভিন্ন উপায়ে ব্যবহার করা সম্ভব হয়।
  • একাধিক ক্লাস একে অপরের মেথড ও প্রোপার্টি ব্যবহার করতে পারে এবং মেথড রিপ্লেসমেন্টের মাধ্যমে আলাদা আচরণ করতে পারে।

সারাংশ

  • Inheritance হল একটি প্রোগ্রামিং কৌশল যা ক্লাসের মধ্যে সম্পর্ক তৈরি করে এবং পুরনো কোড পুনঃব্যবহার করতে সহায়তা করে।
  • Polymorphism হল একাধিক অবজেক্ট একই মেথড বা ইন্টারফেস ব্যবহার করে ভিন্ন ভিন্ন আচরণ করতে পারে।
  • এই দুটি ধারণা একত্রে কোডের নমনীয়তা এবং পুনঃব্যবহারযোগ্যতা বাড়ায় এবং প্রোগ্রামিংকে আরও দক্ষ ও ফ্লেক্সিবল করে তোলে।
Content added By
Promotion

Are you sure to start over?

Loading...