gpt4 book ai didi

scala - 将对象声明为 "final"有什么意义?

转载 作者:行者123 更新时间:2023-12-03 07:17:48 24 4
gpt4 key购买 nike

我刚刚注意到可以在 Scala 中将对象声明为 final:

final object O

这样做有什么意义?无论如何,我们都不能从对象继承:

object A
object B extends A // not found: type A

最佳答案

并不是任何人都会这样做,但是:

$ scala -Yoverride-objects
Welcome to Scala version 2.11.2 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_11).
Type in expressions to have them evaluated.
Type :help for more information.

scala> trait A { object O } ; trait B extends A { override object O }
defined trait A
defined trait B

scala> trait A { final object O } ; trait B extends A { override object O }
<console>:8: error: overriding object O in trait A;
object O cannot override final member
trait A { final object O } ; trait B extends A { override object O }
^

可能有时人们想要这样做。 (For instance.)

关于scala - 将对象声明为 "final"有什么意义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26079591/

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