Tôi muốn làm một cái gì đó như thế này:Làm thế nào để phân lớp một đối tượng với một var trong constructor chính của nó
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)
nhưng trình biên dịch không thích nó.
(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) {
Thêm ghi đè khi cập nhậtCount cũng không hoạt động. Cách sạch sẽ để làm điều này là gì?
Một vài người đã chỉ ra rằng tôi nên xóa var khỏi bản cập nhậtCount in B. Điều này không hiệu quả. Nếu bạn thử, bạn sẽ nhận được (đoạn mở rộng.scala): 7: lỗi: chuyển nhượng lại cho val updateCount = updateCount + 1 sắp ra khỏi phương pháp inc. – Trenton