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-ից
}

Այսպիսով, առանց բազային դասը փոխելու, հնարավոր է փոխել մեթոդի վարքը ժառանգական դասում։