在这些定义foo的每种形式中发生了什么?:
scala> def foo = {1}
foo: Int
scala> foo
res2: Int = 1
Run Code Online (Sandbox Code Playgroud)
但:
scala> def foo {1}
foo: Unit
scala> foo
scala>
Run Code Online (Sandbox Code Playgroud) 虽然我理解为什么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