একটি অবজেক্ট কিভাবে একাধিক টাইপের হতে পারে?


🏆 একটি অবজেক্ট কিভাবে একাধিক টাইপের হতে পারে?

🎭 1️⃣ বাস্তব জীবনের উদাহরণ

আমাদের বাস্তব জীবনে, একজন মানুষ একাধিক ভূমিকা (Role) পালন করতে পারে!

👉 Eleanor:

  • একজন Student (পড়াশোনা করে)
  • একজন Woman (নারী)
  • একজন Beer Enthusiast (বিয়ার ভালোবাসে)
  • একজন UFC Champion (ফাইট করে)

👉 Nate:

  • একজন Developer (কোড লেখে)
  • একজন Man (পুরুষ)
  • একজন Anime Lover (অ্যানিমে দেখে)
  • একজন Swimmer (সাঁতার কাটে)

📌 একটি অবজেক্ট তার টাইপের উপর নির্ভর করে ভিন্ন ভিন্ন আচরণ করতে পারে!
এটা Kotlin-এ কিভাবে হয়? Interface, Inheritance & Polymorphism দিয়ে!


🎭 2️⃣ Interface দিয়ে Multiple Types বানানো

Kotlin-এ একটি ক্লাস একাধিক Interface ইমপ্লিমেন্ট করতে পারে, যার মানে হলো একটি অবজেক্ট একাধিক টাইপের হতে পারে!

// 🎓 Student Interface
interface Student {
    fun study() {
        println("Studying hard for the exams 📖")
    }
}

// 🏆 UFC Champion Interface
interface UFCChampion {
    fun fight() {
        println("Winning the championship fight! 🥊")
    }
}

// 🎭 Eleanor - একাধিক টাইপের অবজেক্ট
class Eleanor : Student, UFCChampion

fun main() {
    val eleanor = Eleanor()
    eleanor.study()  // ✅ Student-এর আচরণ
    eleanor.fight()  // ✅ UFC Champion-এর আচরণ
}

📌 এখানে:
✔️ Eleanor একসাথে Student এবং UFC Champion দুটো টাইপের!
✔️ একই অবজেক্ট দুই রকমের আচরণ করতে পারে!


🔄 3️⃣ টাইপ পরিবর্তন হলে কি হবে?

যখন Eleanor তার স্টুডেন্ট লাইফ শেষ করবে, তখন সে Student-এর আচরণ দেখাবে না!
কিন্তু তার UFC Champion কিংবা অন্যান্য বৈশিষ্ট্য ঠিক থাকবে!

class Eleanor : UFCChampion { // ❌ এখন আর Student না!
    override fun fight() {
        println("Still fighting as a champion! 🏆")
    }
}

fun main() {
    val eleanor = Eleanor()
    eleanor.fight()  // ✅ এখনও UFC Champion, কিন্তু Student না!
}

📌 এখানে:
✔️ Eleanor এখন আর Student নয়, তাই তার study() মেথড নেই!
✔️ কিন্তু সে এখনও UFC Champion!


🎯 কেন এটা দরকারি?

একই অবজেক্টকে বিভিন্ন Role দিতে পারি!
Code Reusability & Maintainability বাড়ে!
Flexible Design করা যায়!

📌 বাস্তব জীবনের মতো, প্রোগ্রামিংয়েও একটি অবজেক্ট একাধিক টাইপের হতে পারে এবং সে অনুযায়ী আচরণ করতে পারে! 🚀😃

Comments

Popular posts from this blog

AI (Artificial Intelligence) সহজভাবে বোঝার জন্য একদম মস্তিষ্ক-বান্ধব ব্যাখ্যা 🧠🤖

🧠 Regex কী?

Kotlin-এ ভেরিয়েবল ঘোষণা করার দুই উপায়