fre*_*low 39 inheritance scala final object
我只是注意到可以final
在Scala中声明对象:
final object O
Run Code Online (Sandbox Code Playgroud)
这样做有什么意义?无论如何,无法继承对象:
object A
object B extends A // not found: type A
Run Code Online (Sandbox Code Playgroud)
som*_*ytt 34
不是有人这样做,但是:
$ 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 }
^
Run Code Online (Sandbox Code Playgroud)
有时人们可能想要这样做.(例如.)
归档时间: |
|
查看次数: |
2830 次 |
最近记录: |