Kotlin Somo la 27: Polymorphism
Somo hili linaeleza dhana ya polymorphism katika OOP ya Kotlin—uwezo wa kutumia method au object moja kufanya kazi tofauti kulingana na muktadha wake. Tutajifunza aina kuu za polymorphism, jinsi ya kuandika code inayotumia override, open, super, pamoja na mifano hai.
? Utangulizi
Katika programming yenye mwelekeo wa vitu (OOP), polymorphism ni dhana muhimu inayomaanisha “uwezo wa kuwa katika maumbo mbalimbali.” Katika Kotlin, hii inamaanisha kuwa method moja inaweza kutenda kwa njia tofauti kutegemeana na context yake. Kwa mfano, class ya mzazi inaweza kuwa na method sauti(), lakini class za watoto kama Mbwa au Paka zinaweza kuifunika method hiyo kwa tabia tofauti. Polymorphism huongeza flexibility, reusability na scalability ya code katika programu kubwa.
? 1. Maana ya Polymorphism
Polymorphism ni neno la Kigiriki linalomaanisha “maumbo mengi.” Katika Kotlin, inamaanisha kuwa object au method moja inaweza kutumika kwa namna tofauti kulingana na muktadha.
Aina kuu za polymorphism:
-
Compile-time Polymorphism (Static) – kupitia method overloading
-
Run-time Polymorphism (Dynamic) – kupitia method overriding
? 2. Method Overriding (Run-time Polymorphism)
Ni pale ambapo subclass inabadilisha tabia ya method iliyo katika superclass kwa kutumia override.
Mfano:
open class Mnyama {
open fun sauti() = println("Mnyama anatoa sauti")
}
class Mbwa : Mnyama() {
override fun sauti() = println("Mbwa anabweka: Woof!")
}
class Paka : Mnyama() {
override fun sauti() = println("Paka anasema: Meow!")
}
fun toaSauti(m: Mnyama) {
m.sauti()
}
fun main() {
val mbwa = Mbwa()
val paka = Paka()
toaSauti(mbwa)
toaSauti(paka)
}
Output:
Mbwa anabweka: Woof!
Paka anasema: Meow!
✅ Hapa function
toaSauti()haitambui ni class gani – inapokeaMnyama, lakini anapotumwaMbwaauPaka, tabia hubadilika kulingana na override. Hii ndiyo polymorphism.
? 3. Method Overloading (Compile-time Polymorphism)
Ni pale ambapo method moja...
Umeionaje Makala hii.. ?
Share On:
👉1 web hosting 👉2 Madrasa kiganjani 👉3 Simulizi za Hadithi Audio 👉4 Kitau cha Fiqh 👉5 kitabu cha Simulizi 👉6 ai web app
Post zinazofanana:
Kotlin Somo la 28: Abstraction na Interfaces
Somo hili linaelezea dhana ya abstraction na interfaces katika Kotlin — namna zinavyosaidia kuficha undani wa utekelezaji na kuweka miongozo ya kazi. Tutafahamu tofauti kati ya abstract class na interface, na tutaandika mifano halisi ya kila moja.
Soma Zaidi...KOTLIN somo la 15: ainza za parameter kwenye function
Katika somo hili tutakwenda kuzungumzia kuhusu parameter kwenye Kotlin function. Pia tutakwenda kuona mambo mengine yanayohusu function
Soma Zaidi...Kotlin Somo la 26: Inheritance (Urithi)
Katika somo hili utakwend akujifunza jinsi ambavyo class moja inaweza kuriti method na properties kutoka kwenye class nyingine.
Soma Zaidi...KOTLIN somo la 14: Aina za function kwenye Kotlin
Katika somo hili tutakwenda kuingia ndani zaidi kwenye somo la function. Hapa tutakwenda kuona aina za function.
Soma Zaidi...Kotlin somo la 26: Dhana ya class, object na method kwenye kotlin
Katika soomo hili utakwenda kujifunza kuhusu class, maana yake, na jinsi ya kuitengeneza
Soma Zaidi...KOTLIN somo la 11:Jinsi ya kutumia break na continue kwenye loop
Katika somo hili utakwenda kujifunza kuhusu break na continue kwenye Kotlin loop za for loop na while loop.
Soma Zaidi...