Inheritance
একটি নতুন ক্লাস ইতোমধ্যে বিদ্যমান অন্য একটি ক্লাস থেকে ফিল্ড এবং মেথড ব্যবহার করে তাকে Inheritance বলা হয়। এটা কোড পুনঃব্যবহার করার সুযোগ দেয়।
ইনহেরিটেন্সের মূল পয়েন্টসমূহ
• বেস ক্লাস (সুপারক্লাস)- যে ক্লাসের গুণাবলী এবং আচরণ উত্তরাধিকার সূত্রে পাওয়া হয়, তাকে বেস ক্লাস বা সুপারক্লাস বলা হয়।
• ড্রাইভ ক্লাস (সাবক্লাস) - যে ক্লাস অন্য ক্লাস থেকে উত্তরাধিকার সূত্রে পায়, তাকে ডেরাইভড ক্লাস বা সাবক্লাস বলা হয়।
ইনহেরিটেন্সের প্রকারভেদ
1. Single Inheritance: যখন একটি সাব-ক্লাস কেবল একটি সুপার-ক্লাস থেকে বৈশিষ্ট্য গ্রহণ করে, তাকে সিঙ্গেল ইনহেরিটেন্স বলে।
2. Multilevel Inheritance: যখন একটি ক্লাস অন্য একটি চাইল্ড ক্লাস থেকে বৈশিষ্ট্য ইনহেরিট করে, অর্থাৎ এটি একটি চেইন বা শিকলের মতো কাজ করে।
3. Multiple Inheritance: যখন একটি চাইল্ড ক্লাস একাধিক প্যারেন্ট ক্লাস থেকে বৈশিষ্ট্য গ্রহণ করে। জাভা এবং সি-শার্প (C#) সরাসরি এটি সাপোর্ট করে না (ইন্টারফেসের মাধ্যমে করতে হয়), তবে পাইথন বা সি++ এ এটি ব্যবহার করা যায়।
4. Hierarchical Inheritance: যখন একটি মাত্র প্যারেন্ট ক্লাস থেকে একাধিক চাইল্ড ক্লাস তৈরি হয়।
5. Hybrid Inheritance: উপরের একাধিক ইনহেরিটেন্সের সংমিশ্রণকে হাইব্রিড ইনহেরিটেন্স বলে।
ইনহেরিটেন্সের ডায়াগ্রাম (টেক্সট আকারে):
Single Inheritance | Multilevel Inheritance | Hierarchical Inheritance | Multiple / Hybrid Inheritance |
ClassA ↓ ClassB | ClassA ↓ ClassB ↓ ClassC | ClassA ↙ ↘ ClassB ClassC | Multiple: ClassA + ClassB ↓ ClassC Hybrid: ClassA ↙ ↘ ClassB ClassC ↘ ↙ ClassD |
ইনহেরিটেন্সের সুবিধাসমূহ
• কোড পুনঃব্যবহারযোগ্যতা বাড়ায়
• এর মাধ্যমে পলিমরফিজম এচিভ করা যায়
• ওভাররাইডিং এচিভ করা যায়
ইনহেরিটেন্সের অসুবিধাসমূহ
• এটা ক্লাসগুলোর মধ্যে নির্ভরতা তৈরি করতে পারে।
• কোডের পারফরম্যান্স কমায়
• এনক্যাপসুলেশন ভায়োলেশন
Written Question
1. Overloading এবং overriding কি? এর মধ্যে পার্থক্য লিখুন? মার্ক -3/5 (১৫তম)
2. Function Overloading কী? উদাহরণসহ ব্যাখ্যা করুন। মার্ক ৫ (১৮তম)
3. Inheritance ব্যাখ্যা করুন। এর সুবিধাসমূহ কি কি? মার্ক - 3 (১৭তম)
4. Polymorphism কি? উদাহরণসহ বিভিন্ন প্রকার polymorphism লিখুন? মার্ক - 5
5. Runtime & Compile time Polymorphism এর মধ্যকার পার্থক্য লিখুন?