Abo
  • IT-Karriere:

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. ALDI International Services GmbH & Co. oHG, Mülheim an der Ruhr
  2. interhyp Gruppe, München

  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
Spiele-Angebote
  1. 3,99€
  2. 2,49€
  3. 2,99€
  4. 4,99€

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
       


AMD stellt Navi-Grafikkarten vor

Die neuen GPUs sollen deutlich effizienter und leistungsstärker sein und ab Juli 2019 verfügbar sein.

AMD stellt Navi-Grafikkarten vor Video aufrufen
Mobile-Games-Auslese: Magischer Dieb trifft mogelnden Doktor
Mobile-Games-Auslese
Magischer Dieb trifft mogelnden Doktor

Ein Dieb mit Dolch in Daggerhood, dazu ein (historisch verbürgter) Arzt in Astrologaster sowie wunderschön aufbereitetes Free-to-Play-Mittelalter in Marginalia Hero: Golem.de stellt die spannendsten neuen Mobile Games vor.
Von Rainer Sigl

  1. Mobile-Games-Auslese Rollenspiel-Frühling mit leichten Schusswechseln
  2. Gaming Apple Arcade wird Spiele-Flatrate für iOS und MacOS
  3. Indiegames Stardew Valley kommt auf Android

Vernetztes Fahren: Wer hat uns verraten? Autodaten
Vernetztes Fahren
Wer hat uns verraten? Autodaten

An den Daten vernetzter Autos sind viele Branchen und Firmen interessiert. Die Vorschläge zu Speicherung und Zugriff auf die Daten sind jedoch noch nebulös. Und könnten den Fahrzeughaltern große Probleme bereiten.
Eine Analyse von Friedhelm Greis

  1. Neues Geschäftsfeld Huawei soll an autonomen Autos arbeiten
  2. Taxifahrzeug Volvo baut für Uber Basis eines autonomen Autos
  3. Autonomes Fahren Halter sollen bei Hackerangriffen auf Autos haften

Doom Eternal angespielt: Die nächste Ballerorgie von id macht uns fix und fertig
Doom Eternal angespielt
Die nächste Ballerorgie von id macht uns fix und fertig

E3 2019 Extrem schnelle Action plus taktische Entscheidungen, dazu geniale Grafik und eine düstere Atmosphäre: Doom Eternal hat gegenüber dem erstklassigen Vorgänger zumindest beim Anspielen noch deutlich zugelegt.

  1. Sigil John Romero setzt Doom fort

    •  /