Scala属性覆盖介绍和用法示例

本文概述

  • Scala字段覆盖示例2
  • Scala字段重写Example3
  • Scala字段覆盖示例4
在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() } }

【Scala属性覆盖介绍和用法示例】输出
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字段重写Example3
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

    推荐阅读