Decir que tengo:¿Extender una clase en scala con parámetros de constructor agrega vals (campos) a la clase?
class A(val foo: String)
class B(foo: String) extends A(foo)
class C(val foo: String) extends A(foo)
class D(override val foo: String) extends A(foo)
class E(bar: String) extends A(bar)
estoy interesado en cómo las instancias de memoria gran parte de cada una de estas clases ocupan. Las instancias de clase A tendrán una única variable miembro: foo.
¿Qué tal las clases B, C, D y E? ¿Cuántas variables de miembro tendrán cada una? Sospecho que E tendrá dos (E.bar, A.foo), espero que D tenga uno (A.foo), pero me pregunto acerca de B y C, ¿podrían tener dos? (B.foo, A.foo)?
Solo una nota rápida que tanto var como val crean métodos en los archivos de clase generados por Scala. La generación de campos es algo opaca para el usuario, por lo que no puede confiar en ningún campo en particular que se genere ni en el nombre de dicho campo. – jsuereth
gracias por la información jseureth –