Junior — Middle
Wie unterscheiden sich die Vererbungsmechanismen in Java und Kotlin?
sobes.tech KI
Antwort von AI
In Java wird Vererbung durch das Schlüsselwort extends für Klassen und implements für Schnittstellen realisiert. Klassen unterstützen einfache Vererbung (eine Elternklasse), können aber mehrere Schnittstellen implementieren. Alle Methoden in Java sind standardmäßig nicht virtuell, aber Elternmethoden können überschrieben werden.
In Kotlin ist die Vererbung flexibler:
- Klassen sind standardmäßig
final(können nicht vererbt werden), um Vererbung explizit zu machen, muss die Klasse alsopendeklariert werden. - Vererbung wird durch
:angezeigt, und der Konstruktor des Elternteils wird direkt nach dem Klassennamen aufgerufen. - Kotlin unterstützt Mehrfachvererbung von Schnittstellen und erlaubt Schnittstellen, Implementierungen von Methoden zu enthalten.
- Methoden und Eigenschaften sind standardmäßig
final, um sie zu überschreiben, mussopenim Elternteil undoverrideim Kind verwendet werden.
Beispiel:
Java:
class Animal {
void sound() { System.out.println("Ein Geräusch"); }
}
class Dog extends Animal {
@Override
void sound() { System.out.println("Bellen"); }
}
Kotlin:
open class Animal {
open fun sound() { println("Ein Geräusch") }
}
class Dog : Animal() {
override fun sound() { println("Bellen") }
}
Dadurch macht Kotlin die Vererbung strenger und expliziter, was die Sicherheit des Codes erhöht und Fehler reduziert.