Scala final关键字用法示例

本文概述

  • Scala final变量示例
  • Scala final方法
  • Scala final方法示例
  • Scala fianl类示例
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() } }

【Scala final关键字用法示例】输出
error: illegal inheritance from final class Vehicle class Bike extends Vehicle{ ^ one error found

    推荐阅读