Sobes.tech
Junior — Middle

Kuidas saab muuta või täiendada meetodite käitumist põhiklassist pärandamisel Kotlinis?

sobes.tech AI

Vastus AI-lt

Kotlinis, metožu uzvedības maiņai vai papildināšanai pamata klases mantošanas laikā, tiek izmantota atslēgas vārds override. Metode pamata klasē jābūt deklarētai ar modifikatoru open, lai to varētu pārrakstīt apakšklasē.

Piemērs:

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

class Derived : Base() {
    override fun greet() {
        super.greet()  // pamata klases metode tiek izsaukta
        println("Sveiki no Derived")
    }
}

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

Šajā piemērā, Base klases greet metode tiek pārrakstīta Derived klasē, izsaucot oriģinālo realizāciju ar super.greet(), un pēc tam pievienojot papildu uzvedību.

Lai mainītu vai papildinātu metodes uzvedību:

  • Pamata klasē metode jābūt open.
  • Apakšklasē metode tiek marķēta ar override.
  • Oriģinālo metodi var izsaukt ar super, lai to papildinātu, nevis aizstātu.