( enpassant | 2016. 05. 30., h – 18:24 )

Örülök, hogy neked is tetszik!

Annyi kiegészítést tennék a kódhoz, hogy nem szokás aláhúzással kezdeni az azonosítókat, illetve ami nem függvény, hanem konstans, azt lehet val-lal definiálni akkor is, ha a szülőben def-volt, mint itt a name, illetve nem szükséges a végére a zárójel, ahogy a func végére se tettél. (A func végére inkább lehetne rakni, mert az tényleg függvény, szemben a name-mel).

Én inkább ilyenre írnám:


trait Base { 
  private def name = "Base"
  def func = name
} 
trait A extends Base { 
  private val name = "A"
  override def func = name + " extends " + super.func
}
trait B extends Base { 
  private val name = "B"
  override def func = name + " extends " + super.func
}
val x = new Base with A with B
val y = new Base with B with A

println(x.func)
println(y.func)