Viniendo de Java Land He estado tratando de enseñarme a mí mismo Scala. Recientemente estaba jugando con el tipo de datos Int
y decidí buscar la API para la clase Int here.tratando de entender "clase abstracta final Int privada extiende AnyVal en Scala
lo perplejo mí era la definición de clase de Int
, que es abstract final
.
soy disculpa si no he leído sobre el significado de abstract
y final
en Scala antes de hacer esta pregunta, pero estaba curioso, así que escribí esta publicación de inmediato.
Entonces, lo que estoy tratando de entender es: ¿La semántica de abstract
, final
y extends
es diferente en Scala? Una vez más, tengo entendido que en Java, uno no puede tener abstract
y final
al mismo tiempo. Entonces, ¿cómo interpreto final abstract class Int private extends AnyVal
?
No, no lo son, al menos, básicamente, (todavía no se puede crear una instancia abstracta, no se puede heredar/anular final). AFAIK, la razón por la que esto se hizo de esta manera es que hace algún tiempo Int y otros tipos de AnyVal eran solo un código auxiliar, reescrito por el compilador en el momento de la compilación. No lo son desde [este compromiso] (https://github.com/scala/scala/commit/4253124eecba6bed38f1dc961c5c4ee39a29f730) –
Oh, esa es información útil. Gracias por señalarme que – ilango