我有这个具体的课程:
class Person (var name: String, var surname: String)
我想创建另一个扩展 Person 的类:
class Son (name: String, surname: String) extends Person(name, surname)
好的。但我确实希望 Son 的构造函数中的字段必须是 var 而不是 val。我该如何解决?这些字段必须保留构造函数参数。
更新#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 类型。