object ExtendOverride_12 {
def main(args: Array[String]): Unit = {
val w = new Worker("Spark", 5, 100000)
println("school: " + w.school)
println("salary: " + w.salary)
println(w.toString)
}
}
class Person1(val name : String, val age : Int){ //name和age是其字段
println("The primary constructor of Person")
val school = "BJU"
def sleep = "8 hours"
override def toString = "I am a Person!" //所有对象都有toString(),类似Java类extends Object
}
class Worker(name : String, age : Int, val salary : Long) extends Person1(name , age){ //子类相比父类多了salary字段
//这里是重点。子类传入的参数name、age也会传入父类主构造器中,把父类主构造器所有参数都填充满。而Java中,用super()调用父类构造器
println("This is the subclass of Person, Primary constructor of Worker")
override val school = "Spark" //重写字段
override def toString = "I am a Wo