Sobes.tech
Junior

Kotlin dilində irsiyyət necə həyata keçirilir?

sobes.tech Süni İntellekt

AI-dan cavab

Kotlin-də irsiyyət openoverride açar sözlərinə əsaslanır. Sinflər və metodlar standart olaraq final sayılır, yəni irsiyyət və ya üst-üstə qoyma mümkün deyil. İrsiyyətə icazə vermək üçün, sinif və ya metod open modifikatoru ilə işarələnməlidir.

Törəmə sinfi yaratmaq üçün, əsas sinif adından sonra iki nöqtə : istifadə olunur və onun ardınca əsas sinifin adı və onun konstruktoru gəlir.

open class Base(val name: String) {
    open fun greet() {
        println("Salam, $name")
    }
}

Əsas sinfin metodunu törəmə sinifdə üst-üstə qoymaq üçün override modifikatoru istifadə olunur.

class Derived(name: String) : Base(name) {
    override fun greet() {
        println("Salamlar, $name")
    }
}

Əgər əsas sinifin konstruktoru parametrli isə, onu super açar sözü ilə çağırmaq lazımdır.

Kotlin çoxlu irsiyyət dəstəyini interfeys ilə təmin edir, amma sinflər üçün deyil. Bir sinif yalnız bir sinfdən irsiyyət ala bilər.

Sinif həmçinin üzvlərini protected, internal və ya private kimi işarələyə bilər, bu onların görünürlüğünü törəmə siniflər və ya modul daxilində məhdudlaşdırır.

Abstrakt siniflər abstract açar sözü ilə elan edilir. Onlar həm abstrakt (implementasiya olunmamış), həm də adi metodlar içərə bilər. Abstrakt metodlar open sözünə ehtiyac duymur, çünki onların üst-üstə qoyulması nəzərdə tutulur. Abstrakt siniflər birbaşa nümunə kimi istifadə edilə bilməz.

abstract class Shape {
    abstract fun draw()
    open fun printInfo() {
        println("Bu bir formadır.")
    }
}

Beləliklə, Kotlin-də irsiyyət açıq şəkildə openoverride modifikatorları ilə idarə olunur, bu da oxumağı yaxşılaşdırır və istənməyən irsiyyətin qarşısını alır.