Sobes.tech
Junior

Papaskinkite apie paveldėjimą Kotlin.

sobes.tech AI

Atsakymas iš AI

Kotlin kalboje paveldėjimas yra mechanizmas, leidžiantis kurti naujus klases remiantis esamomis. Nauja klasė (vaikas arba paveldėtojas) paveldi savybes (kintamuosius) ir metodus (funkcijas) iš tėvų (pagrindinio) klases. Tai skatina kodo pakartotinį naudojimą ir klasių hierarchijų kūrimą.

Pagrindinės savybės:

  1. Numatytasis atvirumas nėra: Kotlin kalboje klasės ir metodai pagal nutylėjimą yra final, tai yra, jų paveldėjimas ar perrašymas nėra leidžiami. Norint leisti paveldėjimą, juos reikia aiškiai pažymėti žodžiu open.
  2. Konstruktoriai: Vaiko klasė turi iškviesti vieną iš tėvų klasių konstruktorių (jei jų keli, interfeisų atveju). Tai daroma deklaruojant vaiko klasę su (...).
  3. Metodų ir savybių perrašymas: Norint perrašyti tėvų klasės metodą ar savybę, juos reikia pažymėti open tėvų klasėje ir override vaiko klasėje.
  4. super: Žodis super naudojamas prieiti prie tėvų klasės narių iš vaiko klasės.
  5. Vienkartinis paveldėjimas: Kotlin palaiko vienkartinį paveldėjimą (iš vienos klasės), bet daugkartinį interfeisų paveldėjimą.

Pavyzdys pagrindinio klasės:

// Pagrindinė klasė
open class Animal(val name: String) {
    open fun makeSound() {
        println("$name skamba")
    }
}

Pavyzdys vaiko klasės:

// Vaiko klasė
class Dog(name: String) : Animal(name) {
    override fun makeSound() {
        println("$name loja")
    }
}

Naudojimas:

// Objektų naudojimas
fun main() {
    val animal = Animal("Bendras gyvūnas")
    animal.makeSound() // Išvestis: Bendras gyvūnas skamba

    val dog = Dog("Bingis")
    dog.makeSound() // Išvestis: Bingis loja
}