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-ից
}
Այսպիսով, առանց բազային դասը փոխելու, հնարավոր է փոխել մեթոդի վարքը ժառանգական դասում։