Semantics of abstract traits in Scala
问题 I am wondering what the semantics of using the abstract keyword in combination with a trait is. If the trait does not define any abstract methods, the abstract keyword does not prevent me from creating an instance: scala> abstract trait T defined trait T scala> new T{} res0: java.lang.Object with T = $anon$1@12cd927d On the other hand, if the trait does define an abstract method, I cannot create an instance (without implementing this method of course) no matter if the abstract keyword is