Why it is not possible to override mutable variable in scala ?
class Abs(var name: String){
}
class AbsImpl(override var name: String) extends Abs(name){
}
This happens when the var
you are trying to override already has an assignment. I am not sure why this is forbidden, but also it makes little sense.
See also this question.
Define name
as abstract instead
trait Abs {
var name: String
}
class AbsImpl(name0: String) extends Abs {
var name = name0
}
or
trait Abs {
var name: String
}
class AbsImpl(private var name0: String) extends Abs {
def name = {
println("getter")
name0
}
def name_=(value: String) = {
println("setter")
name0 = value
}
}