Puedo anular un método de clase scala con un método de un rasgo?

class PasswordCaseClass(val password:String)
trait PasswordTrait { self:PasswordCaseClass =>
    override def password = "blue"
}

val o = new PasswordCaseClass("flowers") with PasswordTrait

¿Es posible anularPasswordCaseClass 'spassword con lo que se proporciona enPasswordTrait? En este momento, recibo este error:

e.scala:6: error: overriding value password in class PasswordCase
Class of type String;
 method password in trait PasswordTrait of type => java.lang.String needs to be a stable,
immutable value
val o = new PasswordCaseClass("flowers") with PasswordTrait
            ^
one error found

Me gustaría poder tener algo como esto:

class User(val password:String) {
}

trait EncryptedPassword { u:User =>
  def password = SomeCriptographyLibrary.encrypt(u.password)
}

val u = new User("random_password") with EncryptedPassword
println(u.password) // see the encrypted version here

Respuestas a la pregunta(3)

Su respuesta a la pregunta