Kotlin tilida meros olish qanday amalga oshiriladi?
sobes.tech AI
AIdan javob
Kotlin'da irsiylik open va override so'zlari asosida qurilgan. Sinflar va metodlar odatda final bo'lib, ular meros olish yoki ustunlik qilishga ruxsat bermaydi. Meros olishga imkon berish uchun, sinf yoki metod open modifikatori bilan belgilanishi kerak.
Meros oluvchi sinfni yaratish uchun, asosiy sinf nomidan so'ng ikki nuqta : ishlatiladi va undan keyin asosiy sinf nomi va uning konstruktorlari yoziladi.
open class Base(val name: String) {
open fun greet() {
println("Salom, $name")
}
}
Asosiy sinfdan metodni ustunlik qilish uchun override modifikatori ishlatiladi.
class Derived(name: String) : Base(name) {
override fun greet() {
println("Salomlar, $name")
}
}
Agar asosiy sinf konstruktor parametrlariga ega bo'lsa, u holda meros oluvchi sinf uni super so'zi yordamida chaqirishi kerak.
Kotlin ko'p meros olishni interfeyslar bilan qo'llab-quvvatlaydi, lekin sinflar bilan emas. Bir sinf faqat bitta sinfdan meros olishi mumkin.
Sinf shuningdek, o'z a'zolarini protected, internal yoki private bilan belgilashi mumkin, bu ularning ko'rinishini meros oluvchi sinflar yoki modul doirasida cheklash imkonini beradi.
Abstrakt sinflar abstract so'zi bilan e'lon qilinadi. Ular abstrakt (implementatsiya qilinmagan) va oddiy metodlarni o'z ichiga olishi mumkin. Abstrakt metodlar open so'ziga ehtiyoj sezmaydi, chunki ularning ustunlik qilishi taxmin qilinadi. Abstrakt sinflar to'g'ridan-to'g'ri instansiya qilinmaydi.
abstract class Shape {
abstract fun draw()
open fun printInfo() {
println("Bu shakl.")
}
}
Shunday qilib, Kotlin'da meros olish open va override modifikatorlari yordamida aniq nazorat qilinadi, bu esa o'qishni yaxshilaydi va noxush meros olishni oldini oladi.