本文共 904 字,大约阅读时间需要 3 分钟。
1、每个对象都有默认的toString方法,但是具体的每一个类的具体实现都不一样,所以这里用override重写
2、worker继承自Person1,是Person1的子类,Worker有三个参数:name,age,salary,其中salary被val限定,是worker的成员,传来的name,age同样要传递给父类的构造器class Person1(val name : String, var age :Int){ println("The primary constructor of Person") val school = "BJU" def sleep = "8 hours" override def toString = "I am a Person1!" } class Worker(name : String, age : Int, val salary : Long) extends Person1(name, age){ println("This is the subClass of Person, Primary constructor of Worker") override val school = "Spark"//重写字段 override def toString = "I am a Worker!"+super.sleep //重写worker的toString,使用super调用子类的sleep方法 }
java中继承,首先是构造函数的要求,其次是用super调用。而scala就是继承使用参数,传递给子类的构造器,自动填充。
def main(args: Array[String]){ val w = new Worker("Spark",5,100000) //先调用父类构造器,然后是子类构造器 println("School:"+w.school) //调用重写字段 println("Salary:"+w.salary) println(w.toString()) //调用重写方法
转载地址:http://yrrub.baihongyu.com/