Scala教程
Scala面向对象
Scala高级

Scala Final

Scala Final

Final 是一个关键字,用于防止超类成员继承到派生类。您还可以声明 final 变量、方法和类。

Scala 最终变量示例

您不能在子类中覆盖最终变量。让我们看一个例子。
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 Method

在父类中声明的Final方法不能被覆盖。如果您不想被覆盖,您可以将任何方法设置为 final。尝试覆盖 final 方法将导致编译时错误。

Scala Final Method Example

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 Class 示例

您也可以制作 final 类。 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
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4