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-დან
}
ამ გზით, ბაზის კლასის შეცვლის გარეშე, შესაძლებელია მეთოდის ქცევის შეცვლა მემკვიდრეობით კლასში.