相关疑难解决方法(0)

为什么不能在scala中覆盖可变变量?

为什么不能在scala中覆盖可变变量?

class Abs(var name: String){
}

class AbsImpl(override var name: String) extends Abs(name){
}
Run Code Online (Sandbox Code Playgroud)

上面的代码给出了以下编译时错误: -

variable name cannot override a mutable variable

如果name声明为val,那么上面的代码工作正常.

inheritance overriding scala

15
推荐指数
2
解决办法
3714
查看次数

为什么在Scala中用`def`覆盖`var`是不可能的?

虽然我理解为什么a var不能覆盖valin子类,反之亦然,但我无法理解为什么Scala不允许defin子类覆盖var超类中的

class Car {
  var age = 32
}

class SedanCar extends Car {
  override def age = 54
}
Run Code Online (Sandbox Code Playgroud)

因为var可变,为什么不允许a def覆盖呢?有人可以帮我理解这个吗?

scala liskov-substitution-principle immutability mutability uap

5
推荐指数
1
解决办法
805
查看次数