我正在從JavaTpoint中練習這段代碼,以學習Scala中的繼承。但是我無法從班級車輛中獲得成員自行車,其價值已初始化爲零。我嘗試了超類型參考,但它仍然顯示重寫的值。爲什麼它不允許訪問超類字段並指向重寫的子類字段(速度)。這裏是代碼和輸出。 預先感謝。Scala:爲什麼我們不能做super.val?
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編譯之後,它將轉移到Java字節碼以與JVM兼容。」這句話沒有意義。你使用谷歌翻譯? – pedrofurla
@pedrofurla,;) – chengpohi