ইনহেরিটেন্স

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 এর মধ্যকার পার্থক্য লিখুন?