প্রোগ্রামিংয়ের মৌলিক ধারণা/ইনহেরিটেন্স এবং পলিমরফিজম
পর্যালোচনা
[সম্পাদনা]অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং (OOP) এ ইনহেরিটেন্স হল একটি মেকানিজম, যা একটি অবজেক্ট বা ক্লাসকে অন্য একটি অবজেক্ট (প্রোটোটাইপিকাল ইনহেরিটেন্স) অথবা ক্লাস (ক্লাস-বেসড ইনহেরিটেন্স) এর উপর ভিত্তি করে তৈরি করা হয়, একই রকম ইমপ্লিমেন্টেশন বজায় রেখে। বেশিরভাগ ক্লাস-বেসড অবজেক্ট-ওরিয়েন্টেড ভাষায়, ইনহেরিটেন্সের মাধ্যমে তৈরি করা একটি অবজেক্ট (যাকে “চাইল্ড অবজেক্ট” বলা হয়) প্যারেন্ট অবজেক্টের সমস্ত প্রপার্টি এবং বিহেভিয়ার গ্রহণ করে (সর্বশেষ: কনস্ট্রাক্টর, ডেস্ট্রাক্টর, ওভারলোডেড অপারেটর এবং ফ্রেন্ড ফাংশন বাদে)। ইনহেরিটেন্স প্রোগ্রামারদের এটি তৈরি করার সুযোগ দেয় যাতে তারা বিদ্যমান ক্লাসের উপর ভিত্তি করে নতুন ক্লাস তৈরি করতে পারে, নতুন ইমপ্লিমেন্টেশন নির্দিষ্ট করতে পারে এবং একই বিহেভিয়ার বজায় রেখে কোড পুনরায় ব্যবহার করতে পারে এবং পাবলিক ক্লাস এবং ইন্টারফেসের মাধ্যমে মূল সফটওয়্যারটি স্বাধীনভাবে সম্প্রসারণ করতে পারে।
আলোচনা
[সম্পাদনা]ইনহেরিটেন্স হল একটি পদ্ধতি যার মাধ্যমে অবজেক্টগুলোকে একটি হায়ারার্কির মধ্যে সাজানো হয়, সর্বাধিক সাধারণ থেকে সর্বাধিক নির্দিষ্ট পর্যন্ত। একটি অবজেক্ট যা অন্য একটি অবজেক্ট থেকে ইনহেরিট করে, তা ওই অবজেক্টের একটি সাবটাইপ হিসেবে বিবেচিত হয়। একটি উদাহরণ হতে পারে ইন্সট্রাক্টর এবং স্টুডেন্ট, প্রতিটি যেটি পার্সন থেকে ইনহেরিট করে। যখন আমরা দুটি অবজেক্টের সম্পর্ক বর্ণনা করতে is-a শব্দটি ব্যবহার করতে পারি, তখন সেই সম্পর্কটি ইনহেরিটেন্স।
আমরা প্রায়ই বলি যে একটি ক্লাস একটি সাবক্লাস বা চাইল্ড ক্লাস এর ক্লাস থেকে ইনহেরিট করেছে, অথবা অন্য ক্লাসটি তার সুপারক্লাস বা প্যারেন্ট ক্লাস। আমরা একটি হায়ারার্কির নিচে সবচেয়ে জেনেরিক ক্লাসটিকে বেস ক্লাস হিসেবে উল্লেখ করতে পারি।
ইনহেরিটেন্স আমাদের এমন অবজেক্টগুলি উপস্থাপন করতে সাহায্য করে, যেগুলোর কিছু পার্থক্য এবং কিছু সাদৃশ্য থাকে তাদের কার্যক্রমের ধরনে। আমরা যেসব কার্যকলাপ অবজেক্টগুলির মধ্যে সাধারণ, তা বেস ক্লাসে রাখি এবং তারপর এক বা একাধিক সাবক্লাসে তাদের নিজস্ব কাস্টম কার্যকলাপ নির্ধারণ করি।
ইনহেরিটেন্স এছাড়াও বিদ্যমান কোড সহজে পুনরায় ব্যবহার করার একটি উপায়। যদি আমাদের ইতিমধ্যে এমন একটি ক্লাস থাকে যা প্রায় যা আমরা চাই তা করে, তাহলে আমরা একটি সাবক্লাস তৈরি করতে পারি, যাতে তার কিছু আচরণ আংশিকভাবে ওভাররাইড করা হয়, অথবা কিছু নতুন কার্যকলাপ যোগ করা হয়।
কিছু স্ট্যাটিক্যালি টাইপড ভাষায় ইনহেরিটেন্স খুব জনপ্রিয়, কারণ এটি প্রোগ্রামারদের স্ট্যাটিক টাইপিংয়ের কিছু সীমাবদ্ধতা কাটিয়ে ওঠার সুযোগ দেয়। যদি একজন ইন্সট্রাক্টর এবং একজন স্টুডেন্ট উভয়েই পার্সন ধরনের সদস্য হয়, তবে আমরা একটি ফাংশন লিখতে পারি যা প্যারামিটার হিসেবে পার্সন টাইপ গ্রহণ করে এবং তা উভয় ইন্সট্রাক্টর এবং স্টুডেন্ট অবজেক্টে কাজ করবে, কারণ তারা উভয়েই পার্সন থেকে ইনহেরিট করে। এই ধারণাটিকে বলা হয় পলিমরফিজম।
মূল শব্দসমূহ
[সম্পাদনা]- ইনহেরিটেন্স
- একটি অবজেক্ট বা ক্লাস অন্য একটি অবজেক্ট বা ক্লাসের উপর ভিত্তি করে তৈরি, একই বাস্তবায়ন ব্যবহার করে বা একটি নতুন বাস্তবায়ন নির্ধারণ করে যাতে একই আচরণ বজায় থাকে।Wikipedia: Inheritance (object-oriented programming)
- পলিমরফিজম
- বিভিন্ন ধরনের সত্তার জন্য একটি একক ইন্টারফেসের প্রদান।Wikipedia: Polymorphism (computer science)