Abo
  • Services:

Generische Programmierung und Vererbung

Bei Listen und ähnlichen Containerklassen steht bei der Erstellung noch nicht fest, welche Objekte sie speichern sollen. In diesen Fällen kann der Entwickler einfach für den Typ einen Platzhalter hinterlegen, in folgendem Beispiel das T:

Stellenmarkt
  1. Neun Zeichen GmbH, Berlin
  2. Wirecard Communication Services GmbH, Leipzig

  1. class Cache<T>(wert: T) {
  2. var inhalt = wert
  3. }
  4. val zahlencache: Cache<Int> = Cache<Int>(35)

Die letzte Zeile erstellt ein Cache-Objekt, das Zahlen speichert. Sofern der Typ eindeutig ist, kann man die Kurzschreibweise val zahlencache = Cache(35) verwenden. Genau wie Java bezeichnet Kotlin dieses Konzept als Generics, unterstützt aber nicht die dort möglichen Wildcards.

Explizite Erbfolge

Eine Klasse kann nur dann von einer Kollegin erben, wenn man Letztere explizit mit open kennzeichnet. Wie an vielen anderen Stellen auch, folgen die Kotlin-Macher damit den Designvorschlägen des Buchs Effective Java:

  1. open class Punkt(var x: Int, var y: Int)
  2. class Quadrat(x: Int, y: Int, var w: Int) : Punkt (x,y)

Analog lässt sich eine Funktion nur dann überschreiben, wenn man ihr das Schlüsselwort open voranstellt und die überschreibende Funktion explizit mit override kennzeichnet. Durch das Schlüsselwort final lässt sich eine Funktion in weiteren Unterklassen nicht mehr überschreiben:

  1. open class Punkt {
  2. open fun zeichne() {}
  3. }
  4. class Kreis() : Punkt() {
  5. final override fun zeichne() {}
  6. }

Mehrfachvererbung

Kotlin erlaubt auch Mehrfachvererbung, im Gegenzug fehlen statische Methoden. Eine Klasse lässt sich allerdings jederzeit um weitere Properties und Funktionen ergänzen (Extensions). In folgendem Beispiel erhält Quadrat nachträglich eine Methode verschieben() und ein Property farbe:

  1. fun Quadrat.verschieben(a: Int, b: Int) {
  2. this.x=this.x+a
  3. this.y=this.y+b
  4. }
  5. val Quadrat.farbe: String
  6. get() = this.toUpperCase()
  7.  
  8. val q = Quadrat(1,2,3)
  9. q.verschieben(4,5)

 Klassen mit zwei Konstruktoren und PropertiesSchnittstellen sind auch nur Klassen 
  1.  
  2. 1
  3. 2
  4. 3
  5. 4
  6. 5
  7. 6
  8.  


Anzeige
Blu-ray-Angebote
  1. (u. a. 3 Blu-rays für 15€, 2 Neuheiten für 15€)
  2. 5€ inkl. FSK-18-Versand
  3. 5€ inkl. FSK-18-Versand

Proctrap 29. Okt 2017

immer diese Threadschändung

MiBx 18. Okt 2017

Das ist schon ganz gut so, dass Du zurück gewechselt bist, wenn Du Dich nicht wirklich...

Proctrap 17. Okt 2017

kwt

horotab 05. Okt 2017

Wer Methoden schreibt, die so lang sind, mach idR sowieso etwas falsch. Im Idealfall hat...

demonkoryu 04. Okt 2017

Closures sind nicht "hip" sondern eine nützliche Abstraktion, die in den letzten Jahren...


Folgen Sie uns
       


Der Mars-Maulwurf des DLR erklärt

Ulrich Köhler vom DLR erläutert die Funktionsweise des Mars-Maulwurfes.

Der Mars-Maulwurf des DLR erklärt Video aufrufen
Magnetfeld: Wenn der Nordpol wandern geht
Magnetfeld
Wenn der Nordpol wandern geht

Das Erdmagnetfeld macht nicht das, was Geoforscher erwartet hatten - Nachjustierungen am irdischen Magnetmodell sind erforderlich.
Ein Bericht von Dirk Eidemüller

  1. Emotionen erkennen Ein Lächeln macht noch keinen Frohsinn
  2. Ökostrom Wie Norddeutschland die Energiewende vormacht
  3. Computational Periscopy Forscher sehen mit einfacher Digitalkamera um die Ecke

Enterprise Resource Planning: Drei Gründe für das Scheitern von SAP-Projekten
Enterprise Resource Planning
Drei Gründe für das Scheitern von SAP-Projekten

Projekte mit der Software von SAP? Da verdrehen viele IT-Experten die Augen. Prominente Beispiele von Lidl und Haribo aus dem vergangenen Jahr scheinen diese These zu bestätigen: Gerade SAP-Projekte laufen selten in time, in budget und in quality. Dafür gibt es Gründe - und Gegenmaßnahmen.
Von Markus Kammermeier


    Elektromobilität: Der Umweltbonus ist gescheitert
    Elektromobilität
    Der Umweltbonus ist gescheitert

    Trotz eines spürbaren Anstiegs zum Jahresbeginn kann man den Umweltbonus als gescheitert bezeichnen. Bislang wurden weniger als 100.000 Elektroautos gefördert. Wenn der Bonus Ende Juni ausläuft, sind noch immer einige Millionen Euro vorhanden. Die Fraktion der Grünen will stattdessen Anreize über die Kfz-Steuer schaffen.
    Eine Analyse von Dirk Kunde

    1. Elektromobilität Nikola Motors kündigt E-Lkw ohne Brennstoffzelle an
    2. SPNV Ceské dráhy will akkubetriebene Elektrotriebzüge testen
    3. Volkswagen Electrify America nutzt Tesla-Powerpacks zur Deckung von Spitzen

      •  /