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. OMICRON electronics GmbH, Klaus (Österreich)
  2. SAPCORDA SERVICE GmbH, Hannover

  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
Top-Angebote
  1. 74,90€ (zzgl. Versand)
  2. 124,90€ (Bestpreis!)
  3. (u. a. Elektrotacker für 67,99€, Akku Stichsäge für 95,99€, Akku Schlagbohrschrauber für...
  4. (Gutscheincode MSPC50) Alternate.de

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
       


Bose Frames im Test

Die Sonnenbrille Frames von Bose hat integrierte Lautsprecher, die den Träger mit Musik beschallen können. Besonders im Straßenverkehr ist das offene Konzept praktisch.

Bose Frames im Test Video aufrufen
WEG-Gesetz: Bundesländer preschen bei Anspruch auf Ladestellen vor
WEG-Gesetz
Bundesländer preschen bei Anspruch auf Ladestellen vor

Können Elektroauto-Besitzer demnächst den Einbau einer Ladestelle in Tiefgaragen verlangen? Zwei Bundesländer haben entsprechende Ergebnisse einer Arbeitsgruppe schon in einem eigenen Gesetzentwurf aufgegriffen.
Eine Analyse von Friedhelm Greis

  1. Elektroautos Mehr als 7.000 neue Ladepunkte in einem Jahr
  2. Elektroautos GM und Volkswagen verabschieden sich vom klassischen Hybrid
  3. Elektroauto BMW meldet Zehntausende E-Mini-Interessenten

Whatsapp: Krankschreibung auf Knopfdruck
Whatsapp
Krankschreibung auf Knopfdruck

Ein Hamburger Gründer verkauft Arbeitsunfähigkeitsbescheinigungen per Whatsapp. Ist das rechtens? Ärztevertreter warnen vor den Folgen.
Von Miriam Apke

  1. Medizin Schadsoftware legt Krankenhäuser lahm
  2. Medizin Sicherheitslücken in Beatmungsgeräten
  3. Gesundheitsdaten Gesundheitsapps werden beliebter, trotz Datenschutzbedenken

Google Game Builder ausprobiert: Spieldesign mit Karten statt Quellcode
Google Game Builder ausprobiert
Spieldesign mit Karten statt Quellcode

Bitte Bild wackeln lassen und dann eine Explosion: Solche Befehle als Reaktion auf Ereignisse lassen sich im Game Builder relativ einfach verketten. Der Spieleeditor des Google-Entwicklerteams Area 120 ist nicht nur für Einsteiger gedacht - sondern auch für Profis, etwa für die Erstellung von Prototypen.
Von Peter Steinlechner

  1. Spielebranche Immer weniger wollen Spiele in Deutschland entwickeln
  2. Aus dem Verlag Neue Herausforderungen für Spieler und Entwickler

    •  /