我们可以使用具有 scala 特征的 new 关键字吗
Can we use new keyword with scala traits
我正在阅读所有内容,我们无法实例化该特征,但是当我运行这段代码时,它工作正常。我对 scala 特性感到困惑,有人可以解释一下吗。
trait X {
def a: Int
def b: String
}
object test {
def main(args: Array[String]) {
new X() {
override def a: Int = 1
override def b: String = "as"
}
}
您实际做的是提供 X
一个 class 正文 { }
并创建一个匿名的 class 内联来扩展特征。
此外 - 该特征的所有成员都有一个具体的实现 - 这就是它起作用的原因。
我正在阅读所有内容,我们无法实例化该特征,但是当我运行这段代码时,它工作正常。我对 scala 特性感到困惑,有人可以解释一下吗。
trait X {
def a: Int
def b: String
}
object test {
def main(args: Array[String]) {
new X() {
override def a: Int = 1
override def b: String = "as"
}
}
您实际做的是提供 X
一个 class 正文 { }
并创建一个匿名的 class 内联来扩展特征。
此外 - 该特征的所有成员都有一个具体的实现 - 这就是它起作用的原因。