Я читаю "Scala for the Impatient", и в 8.8 они говорят:
[..] вы можете использовать ключевое слово abstract для обозначения класса, который не может быть создан [..]
abstract class Person { val id: Int ; var name: String }
И несколько строк позже:
Вы всегда можете настроить абстрактное поле с помощью анонимного типа:
val fred = new Person {
val id = 1729
var name = "Fred"
}
Итак, они искусственно создали экземпляр класса Person с анонимным типом. В каких ситуациях в реальном мире это хотелось бы сделать?