Sobes.tech
Junior

Vorbește despre moștenire în Kotlin.

sobes.tech AI

Răspuns de la AI

Moștenirea în Kotlin este un mecanism care permite crearea de noi clase pe baza celor existente. Clasa nouă (derivată sau copil) moștenește proprietățile (variabilele) și metodele (funcțiile) clasei părinte (de bază). Acest lucru promovează reutilizarea codului și crearea de ierarhii de clase.

Caracteristici cheie:

  1. Nu este deschisă implicit: În Kotlin, clasele și metodele sunt final implicit, ceea ce înseamnă că nu pot fi moștenite sau suprascrise. Pentru a permite moștenirea, trebuie marcate explicit cu cuvântul cheie open.
  2. Constructori: Clasa derivată trebuie să apeleze constructorul uneia dintre clasele de bază (dacă sunt mai multe, în cazul interfețelor). Apelul se face la declararea clasei derivate folosind (...).
  3. Suprascrierea metodelor și proprietăților: Pentru a suprascrie o metodă sau proprietate a clasei de bază în clasa derivată, acestea trebuie marcate cu open în clasa de bază și override în clasa derivată.
  4. super: Cuvântul cheie super este folosit pentru a accesa membrii clasei de bază din clasa derivată.
  5. Moștenire simplă de implementare: Kotlin suportă moștenirea simplă de implementare (de la o singură clasă), dar suportă moștenirea multiplă de interfețe.

Exemplu de clasă de bază:

// Clasă de bază
open class Animal(val name: String) {
    open fun makeSound() {
        println("$name face un sunet")
    }
}

Exemplu de clasă derivată:

// Clasă derivată
class Dog(name: String) : Animal(name) {
    override fun makeSound() {
        println("$name latră")
    }
}

Utilizare:

// Utilizarea obiectelor
fun main() {
    val animal = Animal("Animal generic")
    animal.makeSound() // Ieșire: Animal generic face un sunet

    val dog = Dog("Bobby")
    dog.makeSound() // Ieșire: Bobby latră
}