Scala 之 重写字段

class Vehicle{
  var speed:Int = 60

}
class Bike extends Vehicle{
  var speed:Int = 100 //编译错误:variable 'speed' needs override modifier
  def show(){
    println(speed)
  }
}
object MainObject{
  def main(args:Array[String]){
    var b = new Bike()
    b.show()
  }
}
class Vehicle2{
  val speed:Int = 60

}
class Bike2 extends Vehicle2{
  override val speed:Int = 100     // Override keyword
  def show(){
    println(speed)
  }
}
object MainObject2{
  def main(args:Array[String]){
    var b = new Bike2()
    b.show()
  }
}  
class Vehicle3{
  var speed:Int = 60
}
class Bike3 extends Vehicle3{
  override var speed:Int = 100 //编译正确,但运行失败:variable speed cannot override a mutable variable
  def show(){
    println(speed)
  }
}
object MainObject3{
  def main(args:Array[String]){
    var b = new Bike3()
    b.show()
  }
}
class Vehicle4{
  val speed:Int = 60
}

class Bike4 extends Vehicle4{
  //override var speed:Int = 100 //编译失败
  def show(){
    println(speed)
  }
}

object MainObject4{
  def main(args:Array[String]){
    var b = new Bike4()
    b.show()
  }
}  

版权声明:本文为jinjiankang原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。