Junior
Porozprávajte mi o dedičstve v Kotlin.
sobes.tech AI
Odpoveď od AI
Dedičstvo v Kotlin je mechanizmus, ktorý umožňuje vytváranie nových tried na základe existujúcich. Nová trieda (potomok alebo odvodená) dedí vlastnosti (premenné) a metódy (funkcie) rodičovskej (základnej) triedy. To podporuje opakované použitie kódu a vytváranie hierarchií tried.
Kľúčové vlastnosti:
- Predvolene nie je otvorená: V Kotlinu sú triedy a metódy predvolene
final, čo znamená, že ich nemožno dediť alebo prepísať. Na povolenie dedičnosti ich treba explicitne označiť kľúčovým slovomopen. - Konstruktory: Potomková trieda musí volať konštruktor jednej z bazových tried (ak ich je viac, v prípade rozhraní). Volanie sa vykonáva pri deklarácii potomkovej triedy pomocou
(...). - Prepísanie metód a vlastností: Na prepísanie metódy alebo vlastnosti bazovej triedy v potomkovej triede ich treba označiť
openv bazovej triede aoverridev potomkovej. super: Kľúčové slovosupersa používa na prístup k členom bazovej triedy z potomkovej.- Jednoduché dedičstvo implementácie: Kotlin podporuje jednoduché dedičstvo implementácie (z jednej triedy), ale podporuje aj viacnásobné dedičstvo rozhraní.
Príklad bazovej triedy:
// Bazová trieda
open class Animal(val name: String) {
open fun makeSound() {
println("$name vydáva zvuk")
}
}
Príklad potomkovej triedy:
// Potomková trieda
class Dog(name: String) : Animal(name) {
override fun makeSound() {
println("$name šteka")
}
}
Použitie:
// Použitie objektov
fun main() {
val animal = Animal("Všeobecné zviera")
animal.makeSound() // Výstup: Všeobecné zviera vydáva zvuk
val dog = Dog("Bobby")
dog.makeSound() // Výstup: Bobby šteka
}