Wednesday, February 15, 2017

অ্যবস্ট্রাক্ট ক্লাসের প্রয়োজনীয়তা (why we need abstract class )

পিনাকী ভট্টাচার্যের একটা লেখায় নিচের লাইনগুলো ছিল-

যেমন ফুল যে একটা বিমুর্ত বা এবস্ট্র্যাক্ট ধারণা আমরা অনেকেই হয়ত খেয়াল করিনি। খেয়াল হবে – যদি কাউকে বলি, আমাকে একটা ফুল এনে দেন দেখি। নিশ্চয় সে আনবে জুই, জবা, গন্ধরাজ, দোপাটি, চাঁপা, বোগেনবোলিয়া অথবা রজনীগন্ধা বা আরও কোন দামী কিছু। আমি এক এক করে সব ফিরিয়ে দিব আর বলতে থাকব, ওটা তো জুই, ওটা তো জবা,……..ওটা তো রজনীগন্ধা। আমি শুধু ফুল চাই, কেবল ফুল – যেটা জুইও নয়, জবাও নয়,…… রজনীগন্ধাও নয় – কেবল ফুল চাই আমি।

আমি জানি কেউ আমাকে ফুল এনে দিতে পারবে না, পারে না। কারণ, বাস্তবে really ফুল বলে কিছু নাই; আছে কেবল জুই, জবা, গন্ধরাজ, দোপাটি, চাঁপা, বোগেনবোলিয়া অথবা রজনীগন্ধা বা আরও সব নাম না জানা। কিন্তু তবু ফুল আছে; আছে বিমুর্ততায়, আমাদের ভাবের মধ্যে। “ফুল’ ধরনাটাই একটা এবস্ট্র্যাকশন।

আমি কেনো এই উদ্ধৃতি দিলাম তা এবার বলি,

অবজেক্ট ওরিয়েন্টেড কনসেপ্ট পড়তে গিয়ে অনেকেই ভাবে, অ্যাবস্ট্রাক্ট ক্লাসের প্রয়োজনীয়তা কী? উপরের ব্যাখ্যায় বোঝা গেলো, ফুল একটি ধারণা মাত্র, এটি কোনো কনক্রিট কিছু না। তবে এর কনক্রিট উদাহরণ হতে পারে জুই, জবা, গন্ধরাজ ইত্যাদি।

অবজেক্ট ওরিয়েন্টেড কনসেপ্টে এই ফুল ধারণাটির জন্যে অ্যবস্ট্রাক্ট ক্লাস ব্যবহার করা যেতে পারে। উদাহরণ -



আপনি ফুলের জন্য একটি অ্যবস্ট্রাক্ট ক্লাস তৈরি করতে পারবেন। ফুল ধারণাটি যেকোনো যায়গায় ব্যবহার করতে পারবেন, কোনো মেথডে আর্গুমেন্ট হিসেবে পাস করতে পারবেন, কিন্তু এর কোনো ইনস্ট্যান্স তৈরি করতে পারবেন না। কারণটি সহজ, ফুল একটি ধারণা মাত্র। এখানেই বাস্তব জগতের সঙ্গে অবজেক্ট ওরিয়েন্টেড কনসেপ্টে সাদৃশ্য।