Scala overriding a non-abstract def with a var

Viewed 6492

In Scala I can do this:

trait SomeTrait {
  protected def foo: String
}

class Wibble extends SomeTrait {
  protected var foo = "Hello"
}

But I cannot do the same thing where I provide a default definition for foo

trait SomeTrait {
  protected def foo: String = "World"
}

class Wibble extends SomeTrait {
  protected var foo = "Hello" //complains about lack of override modifier

  override protected var foo = "Hello" //complains "method foo_ overrides nothing"
}

Why can't I do this?

EDIT: After a conversation on the scala-users mailing list, I have raised this in trac

1 Answers
Related