を動作しません::Scalaのoverrideキーワードは、私は、サブクラスのスーパークラスから値をオーバーライドすることでScalaでの継承を学ぶための簡単なコードをwritringい
class point(xy: Int, ry: Int) {
var x: Int = xy
var y: Int = ry
def move(dx: Int, dy: Int){
x = x + dx
y = y + dy
println (x);
println (y);
}
}
class next(override val xy: Int, override val ry: Int, val tet: Int) extends point(xy,ry){
var r: Int = tet
def move(dx: Int, dy: Int, dz: Int){
x = x + dx
y = y + dy
r = r + tet
println ("Point x location : " + x);
println ("Point y location : " + y);
println ("Point z location : " + r);
}
}
object Demo {
def main(args: Array[String]) {
val loc = new next(10, 20, 15);
// Move to a new location
loc.move(10, 10, 5);
}
}
私のスーパーを拡張しながら、私はキーワード「オーバーライド」を使用私のサブクラスでクラス「ポイント」「次」が、私は次のエラー::
"value ry override nothing"
"value xy override nothing"
しかし、私はそれらをオーバーライドしていますが、私は、キーワードを削除すると、コードに誤りがないを取得しています。私のコードに何か不足していますか?
に関して、Amitesh
私は、Scalaの 'override'キーワードが確実に動作することを保証します*。一般的に、何千人もの開発者が毎日何十倍も使われている基本的な言語機能が壊れていると思うなら、それはあなたが間違っていることになります。 Scalaコンパイラは複雑な獣ですが、バグがありますが、これらのバグは、通常、型推論、型チェッカ、または暗黙のリゾルバで、はるかに不明瞭なコーナーになりがちです。 –