Junior
Parlami di ereditarietà in Kotlin.
sobes.tech AI
Risposta dell'AI
L'eredità in Kotlin è un meccanismo che consente di creare nuove classi basate su quelle esistenti. La nuova classe (figlia o derivata) eredita le proprietà (variabili) e i metodi (funzioni) della classe genitore (di base). Questo favorisce il riutilizzo del codice e la creazione di gerarchie di classi.
Caratteristiche principali:
- Per impostazione predefinita, non è aperta: In Kotlin, le classi e i metodi sono
finalper impostazione predefinita, il che significa che non possono essere ereditati o sovrascritti. Per consentire l'ereditarietà, devono essere esplicitamente contrassegnati con la parola chiaveopen. - Costruttori: La classe figlia deve chiamare il costruttore di una delle classi base (se ce ne sono più di una, nel caso delle interfacce). La chiamata avviene dichiarando la classe figlia usando
(...). - Sovrascrittura di metodi e proprietà: Per sovrascrivere un metodo o proprietà della classe base nella classe figlia, devono essere contrassegnati con
opennella classe base eoverridenella classe figlia. super: La parola chiavesuperviene usata per accedere ai membri della classe base dalla classe figlia.- Ereditarietà semplice di implementazione: Kotlin supporta l'ereditarietà semplice di implementazione (da una sola classe), ma l'ereditarietà multipla di interfacce.
Esempio di classe base:
// Classe base
open class Animal(val name: String) {
open fun makeSound() {
println("$name fa un suono")
}
}
Esempio di classe figlia:
// Classe figlia
class Dog(name: String) : Animal(name) {
override fun makeSound() {
println("$name abbaia")
}
}
Utilizzo:
// Uso di oggetti
fun main() {
val animal = Animal("Animale generico")
animal.makeSound() // Output: Animale generico fa un suono
val dog = Dog("Fido")
dog.makeSound() // Output: Fido abbaia
}