Estoy con ganas de hacer algo como esto:Cómo subclase un objeto con una var en su constructor principal
class A (var updateCount: Int) {
}
class B (val name: String, var updateCount: Int) extends A(updateCount) {
def inc(): Unit = {
updateCount = updateCount + 1
}
}
var b = new B("a", 10)
println(b.name)
println(b.updateCount)
b.updateCount = 9999
b.inc
println(b.updateCount)
pero el compilador no le gusta.
(fragment of extend.scala):5: error: error overriding variable updateCount in class A of type Int;
variable updateCount needs `override' modifier
class B (val name: String, var updateCount: Int) extends A(updateCount) {
Añadiendo la anulación en updateCount tampoco funciona. ¿Cuál es la manera limpia de hacer esto?
Un par de personas han señalado que debo eliminar la var de updateCount en B. Esto no funciona. Si lo intenta, debe obtener (fragmento de extend.scala): 7: error: reasignación a val updateCount = updateCount + 1 que sale del método inc. – Trenton