在某些情况下,最好混合特征来访问“静态”方法的功能,而不是使用这些方法导入对象?
假设我们要访问方法的功能a()
。我们是否会扩展包含a()
而不是导入包含的对象的特征a()
?
如果我们看下面的例子:
1)
trait A {
def a() {}
}
...
class B extends A {
val b = a()
}
对比
2)
object A {
def a() {}
}
...
import A._
class B {
val b = a()
}
B
即使两个类之间没有“is-a”关系,是否有任何理由更喜欢第一种方法A
?