Sobes.tech
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 als open deklariert 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, muss open im Elternteil und override im 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.