0
私はScalaの継承を学習するためにJavaTpointからこのコードを練習しています。しかし、私はクラスのメンバーBikeにアクセスすることはできません。値は0に初期化されています。私はスーパータイプの参照を試みましたが、それでもオーバーライドされた値を示しています。 Bikeクラスのインスタンスを使用して、speed = 0の値にアクセスするにはどうすればいいのでしょうか。ここにコードと出力があります。 ありがとうございます。サブクラスのインスタンスを使用してスーパークラスのメンバーにアクセスする方法
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()
}
}
1)値を新しいフィールドに保存すると、別のメモリ位置に保存することになります。それはアクセスを拒否する。 2)デフオルトが優先されます! – Learner