Ich bin zu wollen, etwas zu tun, wie diese Unterklasse:Wie ein Objekt mit einem var in seinem primären Konstruktor
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)
aber der Compiler mag es nicht.
(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) {
Das Hinzufügen von Override auf updateCount funktioniert auch nicht. Was ist der saubere Weg, dies zu tun?
Ein paar Leute haben darauf hingewiesen, dass ich die Variable aus updateCount in B entfernen sollte. Das funktioniert nicht. Wenn Sie es versuchen, erhalten Sie (Fragment von extend.scala): 7: Fehler: Neuzuweisung zu val updateCount = updateCount + 1 kommt aus der Inc-Methode. – Trenton