Traits konstruieren

Traits haben keine Hilfskonstruktoren und erlauben auch keine Argumentliste für den Primärkonstruktor, der aus dem Rumpf des Traits besteht. Traits können von normalen Klassen oder von anderen Traits abgeleitet sein. Sie können aber dem Konstruktor einer Elternklasse keine Argumente übergeben (auch keine Literale), daher können Traits nur Klassen erweitern, die über einen argumentlosen Primär- oder Hilfskonstruktor verfügen.

Wie bei einer Klasse wird aber auch der Rumpf eines Traits jedesmal ausgeführt, wenn man eine neue Instanz erzeugt, die der Trait nutzt. Das folgende Skript veranschaulicht dies:

// code-examples/Traits/trait-construction-script.scala

trait T1 {
  println( "  in T1: x = " + x )
  val x=1
  println( " in T1: x = ...

Get Programmieren mit Scala now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.