gpt4 book ai didi

scala - 单例对象可以扩展特征吗?

转载 作者:行者123 更新时间:2023-12-05 03:00:19 25 4
gpt4 key购买 nike

我想从 Scala 对象扩展一个特征并覆盖那些在特征中的方法。所以我怀疑那些方法对于那个对象会变成静态的或实例方法,这是从特征扩展到 Scala 对象的好方法。请帮忙解决这个问题

trait A{
def show:Unit
}

object B extends A{
override def show(): Unit = {
println("inside Object")
}
}

最佳答案

There are no static methods in Scala . object 确实可以扩展 trait。重写的方法,如 show,不会成为静态方法,而是属于 B.type单个实例。这是 Scala 的 object 定义工具提供的单例模式。

在 Scala REPL 中尝试以下操作:

object B
B

它应该输出类似的东西

res0: B.type = B$@5688722f

请注意 B 的类型是B.type,所以B 只是一个值/实例,与静力学无关。

关于scala - 单例对象可以扩展特征吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56934220/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com