私はこの具体的なクラスを持っています:
class Person (var name: String, var surname: String)
そして、Person を拡張する別のクラスを作成したいと思います。
class Son (name: String, surname: String) extends Person(name, surname)
わかった。しかし、Son のコンストラクターのフィールドは、val ではなく var でなければなりません。これを修正するにはどうすればよいですか? フィールドは、コンストラクター パラメーターのままにする必要があります。
更新 #2
私の問題は次のとおりです。Son でメソッドを定義する場合、値を Son のインスタンスのパラメーターに変更すると機能しません。
class Son (name: String, surname: String) extends Person(name, surname){
def printSon = {
if(this.name=="name")println("Error name Person")
if(this.surname=="surname")println("Error surname Person")
}
}
object main {
def main(args: Array[String]): Unit = {}
val Marco = new Son("Marco","Bianchi")
Marco.printSon // So far everything is ok
Marco.name="name"
Marco.printSon // Here in control is not done, because Marco.name="name" writes in Person
println("FINE")
}
Son の name e surname は val 型です。