Scala: Смешивание трейтов с приватными полями

Это не большой вопрос, скорее мое волнение, что это вообще возможно! Я написал этот небольшой пример, чтобы доказать обратное - я ожидал либо ошибки компилятора, либо одного из значений (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 являются частными, но все же.

7
задан Vilius Normantas 5 March 2011 в 12:26
поделиться