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-დან
}

ამ გზით, ბაზის კლასის შეცვლის გარეშე, შესაძლებელია მეთოდის ქცევის შეცვლა მემკვიდრეობით კლასში.