Non che qualcuno fa questo, ma:
$ 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 }
^
Forse a volte la gente vuole farlo.()
fonte
2014-09-28 02:24:10
Questo è assolutamente giusto. Mi ci è voluto un po 'per convincermi di questo, però. Per dettagli un po 'più dettagliati e dolorosi, vedere gli aggiornamenti in [questa domanda duplicata] (http://stackoverflow.com/questions/30265070/whats-the-point-of-nonfinal-singleton-objects-in-scala). Vedi anche [questa domanda] (http://stackoverflow.com/questions/17308141/what-are-the-subtle-differences-between-val-and-singleton-objects) –