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 方法
我想知道 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 方法