So take this trait
trait SomeTrait{
val x:Int
val y:Int
val z=x*y
}
And then this implementation
class SomeImpl extends SomeTrait{
val x=5
val y=2
println(z) //prints 0 why?
}
Why does it print 0? and how can I avoid that! I want z to be a val, in case it is some kind of expensive computation.