Sobes.tech
Junior

Vertel me over inheritance in Kotlin.

sobes.tech AI

Antwoord van AI

Overerving in Kotlin is een mechanisme waarmee je nieuwe klassen kunt maken op basis van bestaande klassen. De nieuwe klasse (afgeleid of subklasse) erft de eigenschappen (variabelen) en methoden (functies) van de ouderklasse (basis). Dit bevordert hergebruik van code en het creëren van klassenhiërarchieën.

Belangrijke kenmerken:

  1. Standaard niet open: In Kotlin zijn klassen en methoden standaard final, wat betekent dat ze niet kunnen worden geërfd of overschreven. Om overerving toe te staan, moeten ze expliciet worden gemarkeerd met het sleutelwoord open.
  2. Constructors: De subklasse moet de constructor van een van de basisklassen aanroepen (als er meerdere zijn, in het geval van interfaces). De aanroep gebeurt bij het declareren van de subklasse met (...).
  3. Methoden en eigenschappen overschrijven: Om een methode of eigenschap van de basisklasse in de subklasse te overschrijven, moeten ze worden gemarkeerd met open in de basisklasse en override in de subklasse.
  4. super: Het sleutelwoord super wordt gebruikt om toegang te krijgen tot leden van de basisklasse vanuit de subklasse.
  5. Eenvoudige implementatie-overerving: Kotlin ondersteunt enkelvoudige implementatie-overerving (van één klasse), maar ondersteunt meervoudige interface-overerving.

Voorbeeld van een basisklasse:

// Basisklasse
open class Animal(val name: String) {
    open fun makeSound() {
        println("$name maakt een geluid")
    }
}

Voorbeeld van een subklasse:

// Subklasse
class Dog(name: String) : Animal(name) {
    override fun makeSound() {
        println("$name blaft")
    }
}

Gebruik:

// Gebruik van objecten
fun main() {
    val animal = Animal("Algemeen dier")
    animal.makeSound() // Uitvoer: Algemeen dier maakt een geluid

    val dog = Dog("Buddy")
    dog.makeSound() // Uitvoer: Buddy blaft
}