Why does scala complains for below code?
scala> class Http(var status: Int)
defined class Http
scala> case class Post(url: String, data: String, status: Int) extends Http(status)
<console>:8: error: overriding variable status in class Http of type Int;
value status needs `override' modifier
case class Post(url: String, data: String, status: Int) extends Http(status)
^
scala> case class Post(url: String, data: String, sta: Int) extends Http(sta)
defined class Post
But this runs fine.
scala> class C(boo:Int)
defined class C
scala> case class D(far:Int, boo:Int) extends C(boo)
defined class D
var status: Intwill create accessor methods, something likecase class creates these methods by default, so you have two methods with same signature, and scala requires you to add
overridekeyword when overriding methods.without
varyou only create class fields and they are not overridden.