Scala final关键字用法示例

本文概述

Final是一个关键字, 用于防止将超类成员继承到派生类中。你也可以声明最终变量, 方法和类。


Scala final变量示例

你不能在子类中覆盖最终变量。让我们来看一个例子。

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

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

输出

Error - value speed cannot override final member

Scala final方法

父类中的final方法声明不能被覆盖。如果你不想覆盖它, 可以采用任何方法来完成。尝试覆盖最终方法将导致编译时错误。

Scala final方法示例

class Vehicle{
     final def show(){
         println("vehicle is running")
     }
}
class Bike extends Vehicle{
   //override val speed:Int = 100
    override def show(){
        println("bike is running")
    }
}
object MainObject{
    def main(args:Array[String]){
        var b = new Bike()
        b.show()
    }
}

输出

method show cannot override final member
    override def show(){
                 ^
one error found

Scala final类示例

你也可以进行最终类修饰。最终类无法继承。如果你将类定为最终类, 则无法进一步扩展。

final class Vehicle{
     def show(){
         println("vehicle is running")
     }

}

class Bike extends Vehicle{
       override def show(){
        println("bike is running")
    }
}

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

输出

error: illegal inheritance from final class Vehicle
class Bike extends Vehicle{
                   ^
one error found
微信公众号
手机浏览(小程序)
0
分享到:
没有账号? 忘记密码?