• IT-Karriere:
  • 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. Abbott GmbH, Wiesbaden
  2. Infopulse, Frankfurt am Main

  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:

Golem Akademie
  1. Einführung in die Programmierung mit Rust
    21.-24. September 2021, online
  2. Masterclass: Data Science mit Pandas & Python
    9./10. September 2021, online
Weitere IT-Trainings

  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)

Bitte aktivieren Sie Javascript.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
  • ohne Werbung
  • mit ausgeschaltetem Javascript
  • mit RSS-Volltext-Feed
 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. ab 69,99€ (Release 18.06.)
  2. 58,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
       


Programm für IT-Jobeinstieg: Hoffen auf den Klebeeffekt
Programm für IT-Jobeinstieg
Hoffen auf den Klebeeffekt

Aktuell ist der Jobeinstieg für junge Ingenieure und Informatiker schwer. Um ihnen zu helfen, hat das Land Baden-Württemberg eine interessante Idee: Es macht sich selbst zur Zeitarbeitsfirma.
Ein Bericht von Peter Ilg

  1. Arbeitszeit Das Sechs-Stunden-Experiment bei Sipgate
  2. Neuorientierung im IT-Job Endlich mal machen!
  3. IT-Unternehmen Die richtige Software für ein Projekt finden

Weclapp-CTO Ertan Özdil: Wir dürfen nicht in Schönheit und Perfektion untergehen!
Weclapp-CTO Ertan Özdil
"Wir dürfen nicht in Schönheit und Perfektion untergehen!"

Der CTO von Weclapp träumt von smarter Software, die menschliches Eingreifen in der nächsten ERP-Generation reduziert. Deutschen Perfektionismus hält Ertan Özdil aber für gefährlich.
Ein Interview von Maja Hoock


    Fiat 500 als E-Auto im Test: Kleinstwagen mit großem Potenzial
    Fiat 500 als E-Auto im Test
    Kleinstwagen mit großem Potenzial

    Fiat hat einen neuen 500er entwickelt. Der Kleine fährt elektrisch - und zwar richtig gut.
    Ein Test von Peter Ilg

    1. Vierradlenkung Elektrischer GMC Hummer SUV fährt im Krabbengang seitwärts
    2. MG Cyberster MG B Roadster mit Lasergürtel und Union Jack
    3. Elektroauto E-Auto-Prämie übersteigt in 2021 schon Vorjahressumme

      •  /