Это не большой вопрос, скорее мое волнение, что это вообще возможно! Я написал этот небольшой пример, чтобы доказать обратное - я ожидал либо ошибки компилятора, либо одного из значений (111 или 222, я не был уверен).
scala> trait T1 { private val v = 111; def getValueT1 = v }
scala> trait T2 { private val v = 222; def getValueT2 = v }
scala> class T12 extends T1 with T2
scala> val t = new T12
scala> t.getValueT1
res9: Int = 111
scala> t.getValueT2
res10: Int = 222
Почему v
не получает переопределено? Конечно, это работает только до тех пор, пока v
являются частными, но все же.