মাল্টি-লেভেল ইনহেরিটেন্স (Multilevel Inheritance)
মাল্টি-লেভেল ইনহেরিটেন্স হলো ওওপি-র একটি চেইন সিস্টেম। এখানে একটি ক্লাস অন্য ক্লাস থেকে ইনহেরিট করে, এবং সেই ক্লাসটি আবার আগের কোনো ক্লাস থেকে গুণাবলী পায়। অনেকটা দাদা, বাবা এবং সন্তানের সম্পর্কের মতো। সন্তান তার বাবার সবকিছু পায়, আর বাবা পায় দাদার সবকিছু।
মাল্টি-লেভেল ইনহেরিটেন্সে আপনি যখন উৎস ব্যবহার করবেন, তখন সে তার ঠিক আগের লেভেলের (বাবা) ক্লাসকে নির্দেশ করবে।
১. ইনহেরিটেন্স চেইন (The Chain)
নিচে একটি ইলেকট্রনিক্স যন্ত্রপাতির চেইন দেখানো হলো।
ক্লাস যন্ত্র {
চালু_হও() { দেখাও "যন্ত্রটি চলছে..."; }
}
ক্লাস কম্পিউটার মতো যন্ত্র {
হিসাব_করো() { দেখাও "কম্পিউটার হিসাব করছে..."; }
}
ক্লাস ল্যাপটপ মতো কম্পিউটার {
পোর্টেবল() { দেখাও "এটি ব্যাটারিতে চলে।"; }
}
২. দাদা ও বাবার ক্ষমতা ব্যবহার
ল্যাপটপ ক্লাসের একটি অবজেক্ট তৈরি করলে সে ওপরের সব ক্লাসের মেথড ব্যবহার করতে পারবে।
ল্যাপটপ এল = নতুন ল্যাপটপ();
এল.চালু_হও(); // যন্ত্র (দাদা) থেকে এসেছে
এল.হিসাব_করো(); // কম্পিউটার (বাবা) থেকে এসেছে
এল.পোর্টেবল(); // নিজস্ব
৩. কেন মাল্টি-লেভেল ইনহেরিটেন্স দরকার?
১. শ্রেণীবিন্যাস: কোডকে ধাপে ধাপে গুছিয়ে সাজানো যায়।
২. সহজ মেইনটেইনেন্স: উপরের ক্লাসে কোনো পরিবর্তন করলে নিচের সব ক্লাসে তা নিজে নিজেই আপডেট হয়ে যায়।
উৎস[দাদা] লিখে দাদার মেথডও সরাসরি কল করতে পারেন।
৪. ইন-ডেপথ উদাহরণ: যানবাহন চেইন
যানবাহন থেকে মোটরগাড়ি এবং মোটরগাড়ি থেকে স্পোর্টস কার তৈরির লজিক:
ক্লাস যানবাহন {
চলছে() { দেখাও "যানবাহনটি চলছে..."; }
}
ক্লাস মোটরগাড়ি মতো যানবাহন {
ইঞ্জিন_চালু() { দেখাও "ইঞ্জিন গর্জন করছে!"; }
}
ক্লাস স্পোর্টসকার মতো মোটরগাড়ি {
টার্বো() { দেখাও "টার্বো গতি সক্রিয়!"; }
}