একটি অবজেক্ট কিভাবে একাধিক টাইপের হতে পারে?
🏆 একটি অবজেক্ট কিভাবে একাধিক টাইপের হতে পারে?
🎭 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
Post a Comment