Polymorphism – কোডের সুপারপাওয়ার!
🤯 Polymorphism – কোডের সুপারপাওয়ার! 🚀
Polymorphism মানে "একাধিক রূপ"! 🦸♂️
একটি অবজেক্ট বা ফাংশন বিভিন্ন রকম আচরণ করতে পারে, পরিবর্তিত হয়ে নতুন রূপ নিতে পারে! 😲
Kotlin-এ Polymorphism হয় 👉
✅ Method Overriding (উত্তরাধিকার নিয়ে নতুন রূপ দেওয়া)
✅ Method Overloading (একই নামে বিভিন্ন কাজ করা)
✅ Interfaces (বিভিন্ন রূপ দেওয়া)
🎭 1️⃣ Method Overriding – বাবা থেকে ছেলে আলাদা আচরণ শিখলো!
যখন একটি সাব-ক্লাস (child class), এর parent class-এর মেথড নতুনভাবে লিখে, তখন তাকে Method Overriding বলে!
// 🚗 Parent ক্লাস
open class Vehicle {
open fun move() {
println("যেকোনো যানবাহন চলছে 🚗")
}
}
// 🏍️ Child ক্লাস: আলাদা করে চালাবে!
class Bike : Vehicle() {
override fun move() {
println("বাইক দ্রুত চলছে 🏍️💨")
}
}
fun main() {
val myVehicle: Vehicle = Bike() // ✅ Parent টাইপ কিন্তু Bike-এর আচরণ!
myVehicle.move() // 🔥 Output: "বাইক দ্রুত চলছে 🏍️💨"
}
📌 এখানে:
✔️ Parent class Vehicle বলেছে, "আমি সব যানবাহনের জন্য সাধারণ নিয়ম দিবো" 🚗
✔️ Child class Bike বলেছে, "আমি আমার মতো চলবো!" 🏍️
✔️ move() মেথড Parent থেকে Override করে নতুন রূপ পেলো!
🎭 2️⃣ Method Overloading – এক নাম, আলাদা কাজ!
একই নামের ফাংশন, কিন্তু বিভিন্ন ইনপুট নিলে ভিন্নভাবে কাজ করবে!
class Calculator {
fun add(a: Int, b: Int): Int {
return a + b
}
fun add(a: Double, b: Double): Double {
return a + b
}
fun add(a: String, b: String): String {
return "$a $b"
}
}
fun main() {
val calc = Calculator()
println(calc.add(5, 10)) // Output: 15
println(calc.add(5.5, 10.2)) // Output: 15.7
println(calc.add("Hello", "World")) // Output: Hello World
}
📌 এখানে:
✔️ add() একবার সংখ্যা যোগ করছে, আবার স্ট্রিং যোগ করছে!
✔️ একই ফাংশনের ভিন্ন রূপ (polymorphic behavior)!
🎭 3️⃣ Interface দিয়ে Polymorphism – একাধিক রূপ!
একটি অবজেক্ট একাধিক রূপ নিতে পারে (Interface ব্যবহার করে)
// 🎭 বিভিন্ন Role (Interfaces)
interface Singer {
fun perform() = println("🎤 গান গাইছে")
}
interface Dancer {
fun perform() = println("💃 নাচছে")
}
// 🎭 Person একসাথে Singer + Dancer হতে পারে!
class Rockstar : Singer, Dancer {
override fun perform() {
super<Singer>.perform()
super<Dancer>.perform()
}
}
fun main() {
val artist = Rockstar()
artist.perform()
// Output:
// 🎤 গান গাইছে
// 💃 নাচছে
}
📌 এখানে:
✔️ একটি অবজেক্ট একাধিক রূপ নিতে পারে!
✔️ Rockstar একসাথে Singer এবং Dancer দুইটাই হতে পারে!
✔️ একটি মেথড দুইভাবে কাজ করছে (Polymorphism)!
🎯 Polymorphism কেন দরকারি?
✅ Flexible কোড – সহজেই পরিবর্তন করা যায়!
✅ Code Reusability – একই কোড অনেক জায়গায় ব্যবহার করা যায়!
✅ কমপ্লেক্স প্রোগ্রাম সহজভাবে তৈরি করা যায়!
📌 Polymorphism মানে একাধিক রূপ – যা কোডকে সুপারপাওয়ার দেয়! 🚀😃
Comments
Post a Comment