Como inicializar uma variável de característica que é um val

Eu tenho MyObject e MyTrait:

class MyObject(private val myname: String = "") extends MyTrait {

  _name = myname

  def foo(myname : String) {
   _name = myname
  }
}

trait MyTrait {

  protected var _name: String = _

  def name = _name

}

Isso funciona bem como isso

val myObject = new MyObject("abc")
println(myObject.name)
myObject.foo("def")
println(myObject.name)

impressões

abc
def

como esperado.

Problema agora é que eu quero MyTrait._name para ser um val em vez de um var. Mas não há como conseguir isso para compilar. Quaisquer sugestões apreciadas.

Atenciosamente, Oliver

questionAnswers(1)

yourAnswerToTheQuestion