我正在从JavaTpoint练习这段代码以学习Scala中的继承。但是我无法从初始化为零的Vehicle类中访问成员Bike。我尝试通过超级类型引用进行操作,但它仍显示覆盖的值。为什么不允许访问超类字段并定向到覆盖的子类字段(速度)。这是代码和输出。在此先感谢。
class Vehicle {
val speed = 0
println("In vehicle constructor " +speed)
def run() {
println(s"vehicle is running at $speed")
}
}
class Bike extends Vehicle {
override val speed = 100
override def run() {
super.run()
println(s"Bike is running at $speed km/hr")
}
}
object MainObject3 {
def main(args:Array[String]) {
var b = new Bike()
b.run()
var v = new Vehicle()
v.run()
var ve:Vehicle=new Bike()
println("SuperType reference" + ve.speed)
ve.run()
}
}
Run Code Online (Sandbox Code Playgroud)