Junior
Povězte mi o dědičnosti v Kotlinu.
sobes.tech AI
Odpověď od AI
Dědičnost v Kotlinu je mechanismus, který umožňuje vytvářet nové třídy na základě stávajících. Nová třída (potom nebo odvozená) dědí vlastnosti (proměnné) a metody (funkce) rodičovské (základní) třídy. To podporuje opakované použití kódu a vytváření hierarchií tříd.
Klíčové vlastnosti:
- Ve výchozím nastavení není otevřená: V Kotlinu jsou třídy a metody ve výchozím nastavení
final, což znamená, že je nelze dědit nebo přepisovat. Aby bylo možné dědění, musí být explicitně označeny klíčovým slovemopen. - Konstruktory: Potomková třída musí volat konstruktor jedné z bazových tříd (pokud jich je více, v případě rozhraní). Volání se provádí při deklaraci potomkovské třídy pomocí
(...). - Přepisování metod a vlastností: Aby bylo možné přepsat metodu nebo vlastnost bazové třídy v potomkovské třídě, musí být v bazové třídě označeny
opena v potomkovéoverride. super: Klíčové slovosuperse používá k přístupu k členům bazové třídy z potomkové.- Jednoduché dědění implementace: Kotlin podporuje jednoduché dědění implementace (z jedné třídy), ale podporuje i vícenásobné dědění rozhraní.
Příklad bazové třídy:
// Bazová třída
open class Animal(val name: String) {
open fun makeSound() {
println("$name vydává zvuk")
}
}
Příklad potomkové třídy:
// Potomková třída
class Dog(name: String) : Animal(name) {
override fun makeSound() {
println("$name štěká")
}
}
Použití:
// Použití objektů
fun main() {
val animal = Animal("Obecné zvíře")
animal.makeSound() // Výstup: Obecné zvíře vydává zvuk
val dog = Dog("Bobby")
dog.makeSound() // Výstup: Bobby štěká
}