Inheritance in Kotlin – ব্রেইন-ফ্রেন্ডলি ব্যাখ্যা!
🏆 Inheritance in Kotlin – ব্রেইন-ফ্রেন্ডলি ব্যাখ্যা!
🎯 Inheritance কী?
👉 Inheritance (উত্তরাধিকার) হলো এমন একটি ধারণা যেখানে একটি ক্লাস অন্য একটি ক্লাসের প্রোপার্টি এবং মেথড গ্রহণ করে।
এতে কোড পুনঃব্যবহার (Code Reusability) সম্ভব হয় এবং নতুন ক্লাস তৈরি করা সহজ হয়।
💡 উদাহরণ:
- 🏎️ Car (গাড়ি) একটি সাধারণ ক্লাস হতে পারে।
- 🚗 SportsCar (স্পোর্টস কার) হলো Car-এর একটি বিশেষ রূপ, যার বাড়তি কিছু ফিচার থাকে।
- 🚚 Truck হলো Car-এর আরেকটি বিশেষ রূপ, যেটি মাল পরিবহনের জন্য উপযুক্ত।
🔹 কীভাবে Kotlin-এ Inheritance ব্যবহার করবেন?
👉 ১. open কীওয়ার্ড ব্যবহার করুন:
Kotlin-এ ডিফল্টভাবে সব ক্লাস final থাকে (মানে ইনহেরিট করা যাবে না), তাই যদি কোনো ক্লাস ইনহেরিট করতে চান, তাহলে তাকে open করতে হবে!
// ✨ Parent Class
open class Animal {
fun eat() {
println("Animal is eating 🍽️")
}
}
// 🐕 Child Class (Animal থেকে ইনহেরিট করছে)
class Dog : Animal() {
fun bark() {
println("Dog is barking 🐶")
}
}
fun main() {
val dog = Dog()
dog.eat() // ✅ Parent ক্লাসের মেথড
dog.bark() // ✅ Child ক্লাসের নিজস্ব মেথড
}
📌 এখানে:
✔️ Animal হলো Parent/Base/Super ক্লাস।
✔️ Dog হলো Child/Derived/Sub ক্লাস, যেটি Animal থেকে ইনহেরিট করেছে।
✔️ Dog ক্লাস eat() মেথড ইনহেরিট করেছে এবং নতুন bark() মেথড যোগ করেছে।
🔹 ২. কনস্ট্রাক্টর ইনহেরিট করা
👉 যদি Parent ক্লাসের কনস্ট্রাক্টর থাকে, তাহলে Child ক্লাসকেও সেটি কল করতে হবে!
// ✨ Parent Class
open class Person(val name: String) {
fun introduce() {
println("Hi, my name is $name 😊")
}
}
// 👨💻 Child Class (Person থেকে ইনহেরিট করছে)
class Student(name: String, val grade: Int) : Person(name) {
fun showGrade() {
println("$name is in grade $grade 🎓")
}
}
fun main() {
val student = Student("Alice", 10)
student.introduce() // ✅ Parent ক্লাসের মেথড
student.showGrade() // ✅ Child ক্লাসের নতুন মেথড
}
📌 এখানে:
✔️ Person ক্লাসের কনস্ট্রাক্টর আছে (name: String)
✔️ Student ক্লাস Person থেকে ইনহেরিট করেছে এবং name প্যারামিটার পাস করেছে।
🔹 ৩. মেথড ওভাররাইড (Method Overriding)
👉 যদি চাইল্ড ক্লাস Parent ক্লাসের মেথড পরিবর্তন করতে চায়, তাহলে override ব্যবহার করতে হবে!
// ✨ Parent Class
open class Animal {
open fun makeSound() {
println("Animal makes a sound 🔊")
}
}
// 🐶 Child Class (Override করছে)
class Dog : Animal() {
override fun makeSound() {
println("Dog is barking 🐕🦺 Woof! Woof!")
}
}
fun main() {
val myDog = Dog()
myDog.makeSound() // ✅ Overridden মেথড কল হচ্ছে!
}
📌 এখানে:
✔️ Animal ক্লাসের makeSound() মেথড open করা হয়েছে।
✔️ Dog ক্লাস override ব্যবহার করে নিজের মতো করে makeSound() পরিবর্তন করেছে।
🔹 ৪. super কীওয়ার্ড ব্যবহার করা
👉 Parent ক্লাসের মেথড বা প্রপার্টি এক্সেস করতে super ব্যবহার করা হয়।
open class Animal {
open fun makeSound() {
println("Animal makes a generic sound 🔊")
}
}
class Cat : Animal() {
override fun makeSound() {
super.makeSound() // 🐱 Parent ক্লাসের মেথডও কল হবে
println("Cat says Meow! 🐱")
}
}
fun main() {
val myCat = Cat()
myCat.makeSound()
}
📌 এখানে:
✔️ super.makeSound() প্রথমে Parent-এর মেথড কল করছে।
✔️ তারপর Cat নিজস্ব মেথড চালাচ্ছে।
📝 Output:
Animal makes a generic sound 🔊
Cat says Meow! 🐱
🔹 ৫. ইনহেরিট করে মাল্টিপল লেভেল (Multilevel Inheritance)
👉 একটি ক্লাস ইনহেরিট করা হলে, সেটিও আবার অন্য ক্লাস ইনহেরিট করতে পারে!
open class Animal {
fun eat() {
println("Animal is eating 🍽️")
}
}
open class Mammal : Animal() {
fun walk() {
println("Mammal is walking 🚶")
}
}
class Human : Mammal() {
fun talk() {
println("Human is talking 🗣️")
}
}
fun main() {
val person = Human()
person.eat() // ✅ Animal থেকে ইনহেরিট করা
person.walk() // ✅ Mammal থেকে ইনহেরিট করা
person.talk() // ✅ Human-এর নিজস্ব মেথড
}
📌 এখানে:
✔️ Animal → Mammal → Human ইনহেরিট করেছে।
✔️ Human সব মেথড এক্সেস করতে পারছে!
🎯 Inheritance-এর সুবিধা
✅ কোড পুনঃব্যবহারযোগ্য (Code Reusability) – বারবার নতুন করে কোড না লিখেও Parent ক্লাস থেকে ফিচার পাওয়া যায়।
✅ কোড সংক্ষিপ্ত ও সহজ হয় – নতুন নতুন ক্লাস সহজেই তৈরি করা যায়।
✅ দ্রুত ডেভেলপমেন্ট সম্ভব – একবার Parent ক্লাস ঠিক করলে, চাইল্ড ক্লাসগুলো সহজে আপডেট করা যায়।
🔥 Inheritance সংক্ষেপে মনে রাখার কৌশল
🚀 Parent → Child (উত্তরাধিকার)
🚀 open লাগবে Parent ক্লাসে
🚀 override দিয়ে Parent-এর মেথড পরিবর্তন করা যায়
🚀 super দিয়ে Parent-এর মেথড কল করা যায়
✅ এখন আপনি Kotlin-এর Inheritance একদম পরিষ্কারভাবে বুঝে গেছেন! 🚀🔥
💡 এবার নিজে কোড লিখে প্র্যাকটিস করুন! 😎
Comments
Post a Comment