【发布时间】:2026-02-20 10:20:04
【问题描述】:
我正在练习 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()
}
}
【问题讨论】:
标签: scala overriding instance member