Scala 字段覆盖

Scala 字段覆盖

在Scala中,你也可以覆盖字段,但是需要遵循一些规则。下面是一些示例,说明如何覆盖字段。

Scala字段覆盖示例1

class Vehicle{
    var speed:Int = 60

}
class Bike extends Vehicle{
   var speed:Int = 100
    def show(){
        println(speed)
    }
}
object MainObject{
    def main(args:Array[String]){
        var b = new Bike()
        b.show()
    }
}

输出:

Error - variable speed needs 'override' modifier

在Scala中,当你重写父类的方法或字段时,必须使用override关键字或override注解。如果不这样做,编译器会报错并停止程序的执行。

Scala字段重写示例2

class Vehicle{
     val speed:Int = 60

}
class Bike extends Vehicle{
   override val speed:Int = 100     // Override keyword
    def show(){
        println(speed)
    }
}
object MainObject{
    def main(args:Array[String]){
        var b = new Bike()
        b.show()
    }
}

输出:

100

在Scala中,你只能重写那些在两个类中使用val关键字声明的变量。以下是一些有趣的示例,演示了整个过程。

Scala字段重写示例3

class Vehicle{
     var speed:Int = 60
}
class Bike extends Vehicle{
   override var speed:Int = 100
    def show(){
        println(speed)
    }
}
object MainObject{
    def main(args:Array[String]){
        var b = new Bike()
        b.show()
    }
}

输出:

variable speed cannot override a mutable variable

Scala字段覆盖示例4

class Vehicle{
     val speed:Int = 60

}

class Bike extends Vehicle{
   override var speed:Int = 100
    def show(){
        println(speed)
    }
}

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

输出:

Error - variable speed needs to be a stable, immutable value

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程