Sobes.tech
Junior — Middle

Ar galima Kotlin'e pakeisti paveldėtos klasės metodo įgyvendinimą nesikeičiant šio metodo šaltinio kodo bazinėje klasėje?

sobes.tech AI

Atsakymas iš AI

Taip, Kotlin galima pakeisti paveldėtojo klasės metodo įgyvendinimą be pagrindinio klasės kodo keitimo, naudojant override mechanizmą. Tam, pagrindinės klasės metode turi būti deklaruotas su open modifikatoriumi.

Pavyzdys:

open class Base {
    open fun greet() {
        println("Sveiki iš Base")
    }
}

class Derived : Base() {
    override fun greet() {
        println("Sveiki iš Derived")
    }
}

fun main() {
    val obj: Base = Derived()
    obj.greet() // Išves: Sveiki iš Derived
}

Šiuo būdu, be pagrindinės klasės keitimo, galima keisti metodo elgesį paveldėtojo klasėje.