Inheritance (ইনহেরিটেন্স) হল একটি অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং (OOP) ধারণা যা একটি ক্লাসকে অন্য ক্লাসের বৈশিষ্ট্য এবং আচরণ গ্রহণ করার ক্ষমতা প্রদান করে। এটি কোড পুনঃব্যবহার এবং সফটওয়্যার স্থাপনার সহজতর করার জন্য ব্যবহৃত হয়। নিম্নলিখিত পয়েন্টগুলি ইনহেরিটেন্সের মৌলিক ধারণাগুলি তুলে ধরে:
1. Super Class (Parent Class)
- সুপার ক্লাস বা প্যারেন্ট ক্লাস হল সেই ক্লাস যা থেকে বৈশিষ্ট্যগুলি অর্জিত হয়।
- এটি সাধারণভাবে সাধারণ বৈশিষ্ট্য এবং আচরণ ধারণ করে যা সাব ক্লাসে প্রযোজ্য।
2. Sub Class (Child Class)
- সাব ক্লাস বা চাইল্ড ক্লাস হল সেই ক্লাস যা সুপার ক্লাস থেকে বৈশিষ্ট্য এবং আচরণ গ্রহণ করে।
- সাব ক্লাসে অতিরিক্ত বৈশিষ্ট্য এবং মেথড যুক্ত করা যেতে পারে।
3. Code Reusability (কোড পুনঃব্যবহার)
- ইনহেরিটেন্সের মাধ্যমে আপনি একই কোড আবার লিখতে হয় না। সাব ক্লাস সুপার ক্লাসের বৈশিষ্ট্যগুলি ব্যবহার করতে পারে, যা কোডকে আরও সংগঠিত এবং কার্যকর করে।
4. Method Overriding (মেথড ওভাররাইডিং)
- সাব ক্লাস সুপার ক্লাসের মেথডকে পুনরায় সংজ্ঞায়িত করতে পারে, যার ফলে বিভিন্ন ক্লাসে একই নামের মেথড ভিন্নভাবে কাজ করতে পারে। এটি পলিমরফিজমের অংশ।
5. Is-A Relationship (Is-A সম্পর্ক)
- ইনহেরিটেন্সে সাব ক্লাস এবং সুপার ক্লাসের মধ্যে একটি "Is-A" সম্পর্ক থাকে। অর্থাৎ, সাব ক্লাসটি সুপার ক্লাসের একটি বিশেষ ধরনের। যেমন:
- একটি
Dogক্লাস একটিAnimalক্লাসের একটি বিশেষ ধরনের।
- একটি
6. Single Inheritance vs Multiple Inheritance
- Single Inheritance: একটি সাব ক্লাস একক সুপার ক্লাস থেকে বৈশিষ্ট্য গ্রহণ করে।
- Multiple Inheritance: একটি সাব ক্লাস একাধিক সুপার ক্লাস থেকে বৈশিষ্ট্য গ্রহণ করতে পারে। (Dart সরাসরি মাল্টিপল ইনহেরিটেন্স সমর্থন করে না, তবে ইন্টারফেস ব্যবহার করে এটি সম্ভব হয়।)
উদাহরণ
সুপার ক্লাস (Animal):
class Animal {
void speak() {
print("Animal speaks");
}
}
সাব ক্লাস (Dog):
class Dog extends Animal {
@override
void speak() {
print("Dog barks");
}
}
ব্যবহার:
void main() {
Dog dog = Dog();
dog.speak(); // Output: Dog barks
}
Content added By
Read more