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() {
        super.greet()  // даъвати методи синфи асосӣ
        println("Салом аз Derived")
    }
}

fun main() {
    val obj = Derived()
    obj.greet()
}

Дар ин мисол, методи greet синфи Base дар синфи Derived навишта мешавад, ки бо истифода аз super.greet() иҷро мешавад, ва баъд рафтори иловагӣ илова карда мешавад.

Барои тағир додан ё илова кардани рафтор ба метод:

  • Дар синфи асосӣ, метод бояд open бошад.
  • Дар синфи зерӣ, метод бо override ишора мешавад.
  • Методи аслӣ бо super даъват кардан мумкин аст, то ки онро пурра кунад, на иваз кунад.