জাভাস্ক্রিপ্ট ক্লাস ইনহেরিটেন্স (JS Class Inheritance)

Web Development - জাভাস্ক্রিপ্ট (JavaScript) জাভাস্ক্রিপ্ট ক্লাস (JS Class) |
279
279

জাভাস্ক্রিপ্টের ক্লাস ইনহেরিটেন্স (Inheritance) একটি শক্তিশালী বৈশিষ্ট্য যা একটি ক্লাসের প্রোপার্টি ও মেথড অন্য ক্লাসের মাধ্যমে উত্তরাধিকারসূত্রে পাওয়ার সুযোগ দেয়। এটি কোড পুনরায় ব্যবহারযোগ্যতা বৃদ্ধি করে এবং একাধিক ক্লাসের মধ্যে সম্পর্ক গড়ে তোলে। extends কীওয়ার্ড ব্যবহার করে একটি ক্লাস অন্য ক্লাস থেকে ইনহেরিট করতে পারে।


ইনহেরিটেন্স কী?

ইনহেরিটেন্স হল এমন একটি প্রক্রিয়া যেখানে একটি ক্লাস (প্যারেন্ট ক্লাস বা সুপারক্লাস) অন্য ক্লাস (চাইল্ড ক্লাস বা সাবক্লাস) কে তার প্রপার্টি এবং মেথড উত্তরাধিকারসূত্রে দেয়। চাইল্ড ক্লাস প্যারেন্ট ক্লাসের সব মেথড এবং প্রপার্টি পায়, তবে সেটি নিজের মতো নতুন মেথড বা প্রপার্টি যোগ করতে পারে এবং প্যারেন্ট ক্লাসের মেথডও ওভাররাইড করতে পারে।


ক্লাস ইনহেরিটেন্স উদাহরণ

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

class Animal {
    constructor(name) {
        this.name = name;
    }

    speak() {
        console.log(`${this.name} makes a sound.`);
    }
}

এখানে, Animal ক্লাস একটি সাধারণ প্যারেন্ট ক্লাস যা name প্রপার্টি ধারণ করে এবং একটি speak মেথড সংজ্ঞায়িত করে।

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

class Dog extends Animal {
    constructor(name, breed) {
        super(name);  // প্যারেন্ট ক্লাসের কনস্ট্রাক্টর কল
        this.breed = breed;
    }

    speak() {
        console.log(`${this.name} barks.`);
    }
}

const dog1 = new Dog("Buddy", "Golden Retriever");
dog1.speak();  // আউটপুট: Buddy barks.

এখানে, Dog ক্লাস Animal ক্লাস থেকে ইনহেরিট করছে। Dog ক্লাস speak মেথডকে ওভাররাইড করে, অর্থাৎ প্যারেন্ট ক্লাসের speak মেথড পরিবর্তন করা হয়েছে। প্যারেন্ট ক্লাসের কনস্ট্রাক্টর super() দ্বারা কল করা হয়েছে।


ইনহেরিটেন্সের বিশেষত্ব

সুপার কনস্ট্রাক্টর কল (Super Constructor Call)

চাইল্ড ক্লাসের কনস্ট্রাক্টর মেথডে প্যারেন্ট ক্লাসের কনস্ট্রাক্টর কল করতে super() ব্যবহৃত হয়। এটি প্যারেন্ট ক্লাসের প্রপার্টি বা ফাংশনকে চাইল্ড ক্লাসে ইনিশিয়ালাইজ করতে সাহায্য করে।

প্যারেন্ট মেথড ওভাররাইড (Parent Method Overriding)

চাইল্ড ক্লাস প্যারেন্ট ক্লাসের মেথডকে ওভাররাইড (পরিবর্তন) করতে পারে, যাতে চাইল্ড ক্লাসে নতুন কার্যকারিতা যোগ করা যায়। উপরোক্ত উদাহরণে, Dog ক্লাসের speak মেথড প্যারেন্ট ক্লাসের speak মেথডের কাজ পরিবর্তন করেছে।


মেথড ওভাররাইড এবং সুপার (Method Overriding and Super)

যখন চাইল্ড ক্লাস প্যারেন্ট ক্লাসের একটি মেথডকে ওভাররাইড করে, তখন চাইল্ড ক্লাসের মেথড প্যারেন্ট ক্লাসের মেথডের কাজ সম্পূর্ণরূপে পরিবর্তন করতে পারে। তবে, যদি প্যারেন্ট ক্লাসের মেথডটি কিছু অতিরিক্ত কাজ করতে হয়, তবে super ব্যবহার করে সেই মেথডটিকে কল করা সম্ভব।

উদাহরণ:

class Animal {
    constructor(name) {
        this.name = name;
    }

    speak() {
        console.log(`${this.name} makes a sound.`);
    }
}

class Dog extends Animal {
    constructor(name, breed) {
        super(name);  // প্যারেন্ট ক্লাসের কনস্ট্রাক্টর কল
        this.breed = breed;
    }

    speak() {
        super.speak();  // প্যারেন্ট ক্লাসের speak মেথড কল
        console.log(`${this.name} barks.`);
    }
}

const dog1 = new Dog("Buddy", "Labrador");
dog1.speak();
// আউটপুট:
// Buddy makes a sound.
// Buddy barks.

এখানে, Dog ক্লাসের speak মেথড প্যারেন্ট ক্লাসের speak মেথড কল করার জন্য super.speak() ব্যবহার করেছে, এর পরে নিজস্ব barks মেসেজটি প্রদর্শন করছে।


একাধিক ইনহেরিটেন্স (Multiple Inheritance)

জাভাস্ক্রিপ্টে সরাসরি একাধিক ইনহেরিটেন্স সমর্থিত নয়, অর্থাৎ এক ক্লাস শুধুমাত্র একটি ক্লাস থেকে ইনহেরিট করতে পারে। তবে, কম্পোজিশন এবং মিশ্রণ (Mixins) ব্যবহার করে একাধিক ফিচার বা বৈশিষ্ট্য সংগ্রহ করা যেতে পারে।


সারাংশ

জাভাস্ক্রিপ্টের ক্লাস ইনহেরিটেন্স একটি শক্তিশালী বৈশিষ্ট্য যা ক্লাসগুলির মধ্যে সম্পর্ক তৈরি করে এবং কোড পুনরায় ব্যবহারযোগ্যতা ও রক্ষণাবেক্ষণযোগ্যতা বৃদ্ধি করে। ইনহেরিটেন্সের মাধ্যমে একটি চাইল্ড ক্লাস প্যারেন্ট ক্লাসের প্রপার্টি এবং মেথড উত্তরাধিকারসূত্রে পায় এবং সেগুলি ওভাররাইড করতে পারে। super() ব্যবহার করে চাইল্ড ক্লাস প্যারেন্ট ক্লাসের মেথড এবং কনস্ট্রাক্টর কল করতে পারে। এটি অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিংয়ের অন্যতম প্রধান ধারণা এবং বড় প্রজেক্টগুলির কোড সংগঠিত ও সহজ করে তোলে।


অতিরিক্ত টিপস

  • মিশ্রণ (Mixins) ব্যবহার করে একাধিক ক্লাসের বৈশিষ্ট্য অর্জন করুন, যেখানে একাধিক ক্লাস থেকে মেথড এবং প্রপার্টি একত্রিত করা হয়।
  • ইনহেরিটেন্সের চেইনিং বুঝে ব্যবহার করুন, যেখানে একাধিক স্তরের ইনহেরিটেন্স ব্যবহৃত হয় এবং আপনি প্যারেন্ট ক্লাস থেকে উত্তরাধিকারসূত্রে প্রপার্টি বা মেথড গ্রহণ করেন।
  • ওভাররাইড মেথড ব্যবহার করার সময় সাবধান থাকুন, যাতে প্যারেন্ট ক্লাসের প্রাথমিক কার্যকারিতা নষ্ট না হয়।
common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion