Я оставлю оригинальный ответ ниже, хотя он в значительной степени неверен, так как я не правильно понял вопрос.
Существующая библиотека коллекций Scala в значительной степени обеспечивает различные методы добавления для изменяемых / неизменяемых объектов, вероятно, в надежде прояснить в исходном коде, какой тип коллекции используется. Как уже говорилось, это пересматривается в 2.8, и эта предпосылка исчезает.
В таком случае абстрактные классы не предоставляют методы, о которых вы думаете, потому что они могут существовать для неизменяемого, но не для изменяемого, и наоборот. Или они могут иметь одинаковое имя , но разные реализации.
И, следовательно, было бы невозможно предоставить их в базовом классе.
Но, кроме того, обратите внимание, что таким образом, если вы получаете scala.collection.map, вы не можете испортить его, рассматривая его как изменяемый, когда вы получили неизменяемый, или наоборот.
А теперь неправильный ответ. :)
Вы можете (нет, вы не можете - код ниже использует scala.collection.imutable.Map).
scala> val x = Map(1 -> 'a', 2 -> 'b')
x: scala.collection.immutable.Map[Int,Char] = Map(1 -> a, 2 -> b)
scala> x ++ Map(3 -> 'c')
res5: scala.collection.immutable.Map[Int,Char] = Map(1 -> a, 2 -> b, 3 -> c)
scala> var y = x
y: scala.collection.immutable.Map[Int,Char] = Map(1 -> a, 2 -> b)
scala> y += (3 -> 'c')
scala> y
res7: scala.collection.immutable.Map[Int,Char] = Map(1 -> a, 2 -> b, 3 -> c)
scala> x + (3 -> 'c')
res8: scala.collection.immutable.Map[Int,Char] = Map(1 -> a, 2 -> b, 3 -> c)