gpt4 book ai didi

scala - 重写 final方法

转载 作者:行者123 更新时间:2023-12-01 23:41:14 27 4
gpt4 key购买 nike

final方法不能在子类中重写。但凭借 Scala 的魔力,这似乎是可能的。

考虑以下示例:

trait Test {
final def doIt(s: String): String = s
}

object TestObject extends Test {
def doIt: String => String = s => s.reverse
}

对象 TestObject 中的方法 doIt 与特征 Test 中的 doIt 签名不同。因此,doIt 被重载而不是被覆盖。但是对 doIt 的正常调用总是调用 TestObject 中的方法:

val x = TestObject.doIt("Hello")                //> x  : String = olleH

问题:如何调用 TestObject 上的原始方法 doIt。这是可能的还是这个方法“有点被覆盖”?

最佳答案

您可以使用TestObject作为Test,如下所示:

(TestObject: Test).doIt

关于scala - 重写 final方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20453243/

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