Sobes.tech
Junior — Middle

Kotlinде мурасым класстагы ыкмытын ишке ашырууну негизги классындагы ошол ыкмытын булак кодун өзгөртпөстөн өзгөртүүгө болобу?

sobes.tech AI

AIден жооп

Ооба, Kotlinде мурас алган класстагы методтун иштешин өзгөртүү мүмкүн, негизги классдын булагын өзгөртпөстөн, override механизмин колдонуу менен. Ага ылайык, негизги класстагы метод open модификатору менен жарыялануусу керек.

Мисал:

open class Base {
    open fun greet() {
        println("Baseдан салам")
    }
}

class Derived : Base() {
    override fun greet() {
        println("Derivedдан салам")
    }
}

fun main() {
    val obj: Base = Derived()
    obj.greet() // Чыгуу: Derivedдан салам
}

Ошентип, негизги классты өзгөртпөстөн, мурас алган класста методтун жүрүм-турумун өзгөртүү мүмкүн.