Scala:特征的所有方法都是导入的还是只使用了一个?

Scala: are all the methods of a Trait imported or just the one that are used?

我想知道 Trait 的所有方法是否都导入到扩展此 Trait 的 class 中,或者只导入使用过的方法?

以及依赖注入?

除了标记为 private 的方法外,所有其他方法都可用于扩展实体。扩展实体可以选择覆盖或不实现,在这种情况下,该实体的子实体必须处理它。

trait A {
 private def a: Int = 1 //not available
 protected def b: Int = 2 //available inside extending entity
 def d: Int = 3 //available everywhere 
}

class B extends A {}
val x = new B()

x.a //error

x.b //error

x.d //prints 3

即将进行依赖注入

假设 A 和 B 是两个不存在 parent/child 关系的接口或特征。

如果您将一个实体注入另一个实体。其他

可以访问该实体的所有 public 方法