У меня есть следующий код:Scala полиморфизм
trait SuperX {
val v: Int
}
class SubY(val v: Int, var z: SuperX) extends SuperX
class SubZ(val v: Int) extends SuperX
, и я не понимаю, почему это не возможно
var test: SuperX = new SubY(1, new SubZ(-1))
println(test.z.v)
Если я пишу это как
var test = new SubY(1, new SubZ(-1))
тогда я не в состоянии сделать
test = test.z
Я новичок в Scala, поэтому некоторые вещи довольно запутывают. Я знаю, что это возможно в Java с интерфейсом, а не с признаком.
Благодарим за помощь.
Из любопытства, как бы вы сделали это на Java? – Dimitri