我有两个特质
trait Person
trait Food
为什么要编译:
val pf = new Person with Food //OK
这不是
val p = new Person //result error: trait Person is abstract; cannot be instantiated
答案 0 :(得分:1)
根据定义,特征是抽象的(不可实例化的)。即使它们已完全实现,也可能无法实例化。正如senia在评论中所述,您可以从完全实现的特征中获取匿名类,如下所示:
trait T1
val t1 = new T1 {}