Kotlin dilində 'super' açar sözünün necə işlədiyini izah edin.
sobes.tech Süni İntellekt
AI-dan cavab
Açar söz super, valide (xüsusiyyətlər, metodlar) valide sinifindən övlad sinifinə daxil olmaq üçün istifadə olunur.
Əsas istifadə üsulları:
-
Valide sinifin konstruktorunu çağırmaq: Bu, çox vaxt övlad sinfinin konstruktorunda valide konstruktorunu çağırmaq üçün istifadə olunur. Əgər valide sinifin parametrli əsas konstruktoru varsa, bu mütləqdir.
open class Parent(val name: String) class Child(name: String) : Parent(name) { // Child konstruktoru, Parent konstruktorunu çağırır, // name parametrini ötürür. } -
Valide sinifin üzvlərinə, övlad sinifində yenidən təyin edilmiş olsa belə, daxil olmaq: Bu, valide sinifdəki metod və ya xüsusiyyətin tətbiqinə daxil olmaq imkanı verir, hətta onlar
overrideilə yenidən təyin olunsa da.open class Base { open fun greet() { println("Hello from Base") } open val value: Int = 1 } class Derived : Base() { override fun greet() { super.greet() // Base-dən greet() çağırışı println("Derived-dən Salam") } override val value: Int = 2 get() { println("Derived dəyərinə daxil olmaq") return super.value + 1 // Base-dən value-ya daxil olmaq } } -
Müəyyən bir supertipin üzvlərinə daxil olmaq (çoxlu irsiyyət halında): Əgər sinif bir neçə interfeys həyata keçirirsə və onların üzvləri eyni adlara malikdirsə,
superilə birlikdə interfeys adını bucaq mötərizələrdə (super<TypeName>) göstərməklə, hansı interfeysə aid üzvünə müraciət ediləcəyi aydın olur.interface MyInterface1 { fun foo() { println("MyInterface1 foo") } } interface MyInterface2 { fun foo() { println("MyInterface2 foo") } } class MyClass : MyInterface1, MyInterface2 { override fun foo() { super<MyInterface1>.foo() // MyInterface1-dən foo() çağırışı super<MyInterface2>.foo() // MyInterface2-dən foo() çağırışı } }