Sobes.tech
Junior — Middle

Java va Kotlin'da abstrakt metod o'rtasidagi farq nima?

sobes.tech AI

AIdan javob

Java'da abstrakt metod, abstrakt sinifda elan edilir və implementasiya olmadan olur. Abstrakt metodun yerləşdiyi sinif abstract elan edilməlidir və bütün irəli gələnlər bu metodu tətbiq etməlidirlər, əgər onlar abstrakt deyilsə.

Kotlin-də, abstrakt metodlar da abstrakt siniflərdə elan edilir, amma vacib bir fərq var: Kotlin-də, abstrakt siniflərdə (open və ya abstract) implementasiya ilə metodlar elan etmək mümkündür və interfeyslər də implementasiya ilə metodlar (default metodlar) içərə bilər. Kotlin-də abstrakt metod, gövdəsi olmayan və alt siniflərdə yenidən təyin edilməli olan metoddur.

Kotlin nümunəsi:

abstract class Animal {
    abstract fun makeSound()
    fun sleep() {
        println("Sleeping")
    }
}

Burada, makeSound abstrakt metoddur, sleep isə implementasiya ilə metoddur.

Nəticədə, fərq odur ki, Kotlin, abstrakt siniflərdə və interfeyslərdə implementasiya ilə metodların təyinində daha çevikdir, Java isə tələb edir ki, abstrakt metodlar implementasiyasız olsun və default metodlar ilə abstrakt siniflərdə və ya interfeyslərdə yerləşsin.