Sobes.tech
Junior

Parlez-moi de l'héritage en Kotlin.

sobes.tech IA

Réponse de l'IA

L'héritage en Kotlin est un mécanisme permettant de créer de nouvelles classes basées sur des classes existantes. La nouvelle classe (fille ou dérivée) hérite des propriétés (variables) et des méthodes (fonctions) de la classe parente (de base). Cela favorise la réutilisation du code et la création de hiérarchies de classes.

Caractéristiques clés :

  1. Par défaut, non ouvert : En Kotlin, les classes et méthodes sont final par défaut, ce qui signifie qu'elles ne peuvent pas être héritées ou redéfinies. Pour permettre l'héritage, elles doivent être explicitement marquées avec le mot-clé open.
  2. Constructeurs : La classe fille doit appeler le constructeur d'une des classes de base (si plusieurs, dans le cas des interfaces). L'appel se fait lors de la déclaration de la classe fille en utilisant (...).
  3. Redéfinition de méthodes et propriétés : Pour redéfinir une méthode ou propriété de la classe de base dans la classe fille, elles doivent être marquées avec open dans la classe de base et override dans la classe fille.
  4. super : Le mot-clé super est utilisé pour accéder aux membres de la classe de base depuis la classe fille.
  5. Héritage simple d'implémentation : Kotlin supporte l'héritage simple d'implémentation (d'une seule classe), mais l'héritage multiple d'interfaces.

Exemple de classe de base :

// Classe de base
open class Animal(val name: String) {
    open fun makeSound() {
        println("$name fait un son")
    }
}

Exemple de classe fille :

// Classe fille
class Dog(name: String) : Animal(name) {
    override fun makeSound() {
        println("$name aboie")
    }
}

Utilisation :

// Utilisation d'objets
fun main() {
    val animal = Animal("Animal générique")
    animal.makeSound() // Sortie : Animal générique fait un son

    val dog = Dog("Buddy")
    dog.makeSound() // Sortie : Buddy aboie
}