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:
- 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 sleutelwoordopen. - 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
(...). - Methoden en eigenschappen overschrijven: Om een methode of eigenschap van de basisklasse in de subklasse te overschrijven, moeten ze worden gemarkeerd met
openin de basisklasse enoverridein de subklasse. super: Het sleutelwoordsuperwordt gebruikt om toegang te krijgen tot leden van de basisklasse vanuit de subklasse.- 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
}