Junior
Opowiedz o dziedziczeniu w Kotlin.
sobes.tech AI
Odpowiedź od AI
Dziedziczenie w Kotlinie to mechanizm umożliwiający tworzenie nowych klas na podstawie istniejących. Nowa klasa (potomna lub pochodna) dziedziczy właściwości (zmienne) i metody (funkcje) klasy rodzica (bazowej). To sprzyja ponownemu użyciu kodu i tworzeniu hierarchii klas.
Kluczowe cechy:
- Domyślnie nie jest otwarte: W Kotlinie klasy i metody są domyślnie
final, co oznacza, że nie można ich dziedziczyć ani nadpisywać. Aby umożliwić dziedziczenie, muszą być wyraźnie oznaczone słowem kluczowymopen. - Konstruktory: Klasa potomna musi wywołać konstruktor jednej z klas bazowych (jeśli jest ich więcej, w przypadku interfejsów). Wywołanie następuje podczas deklaracji klasy potomnej za pomocą
(...). - Nadpisywanie metod i właściwości: Aby nadpisać metodę lub właściwość klasy bazowej w klasie potomnej, muszą być one oznaczone
openw klasie bazowej ioverridew klasie potomnej. super: Słowo kluczowesupersłuży do dostępu do członków klasy bazowej z klasy potomnej.- Pojedyncze dziedziczenie implementacji: Kotlin obsługuje pojedyncze dziedziczenie implementacji (z jednej klasy), ale obsługuje wielokrotne dziedziczenie interfejsów.
Przykład klasy bazowej:
// Klasa bazowa
open class Animal(val name: String) {
open fun makeSound() {
println("$name wydaje dźwięk")
}
}
Przykład klasy potomnej:
// Klasa potomna
class Dog(name: String) : Animal(name) {
override fun makeSound() {
println("$name szczeka")
}
}
Użycie:
// Użycie obiektów
fun main() {
val animal = Animal("Ogólne zwierzę")
animal.makeSound() // Wyjście: Ogólne zwierzę wydaje dźwięk
val dog = Dog("Burek")
dog.makeSound() // Wyjście: Burek szczeka
}