4. POLYMORPHISMUS
• Parametrisiert
• Generische Funktionen und Datentypen
• Ad-hoc
• Methoden- und Operator-Overloading
• Unterklassen (Subtype Polymorphismus)
• Type Classes
2
5. CASE CLASSES SERIALISIEREN
package model {
case class Person(firstName: String, lastName: String)
case class Restaurant(name: String, address: String)
}
3
6. CASE CLASSES SERIALISIEREN
package model {
case class Person(firstName: String, lastName: String)
case class Restaurant(name: String, address: String)
}
Neue
JSON CSV XML
Funktion
Person toJson toCsv toXml
Restaurant toJson toCsv toXml
Neuer Typ
3
20. TYPE CLASSES (3)
• Definition
• Trait mit Parameter
• Companion Object mit Default Implementationen
10
21. TYPE CLASSES (3)
• Definition
• Trait mit Parameter
• Companion Object mit Default Implementationen
• Beispiele in Scala: scala.math.Ordering und scala.math.Numeric
10
22. TYPE CLASSES (3)
• Definition
• Trait mit Parameter
• Companion Object mit Default Implementationen
• Beispiele in Scala: scala.math.Ordering und scala.math.Numeric
•+ Gut erweiterbar
10
23. TYPE CLASSES (3)
• Definition
• Trait mit Parameter
• Companion Object mit Default Implementationen
• Beispiele in Scala: scala.math.Ordering und scala.math.Numeric
•+ Gut erweiterbar
• - Viel Code, implicits manchmal undurchsichtig
10