Scala教程
Scala面向对象
Scala高级

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
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4