12.Scala中的继承:超类的构造、重写字段、重写方法代码实战

来源:互联网 发布:中医 数据库 编辑:程序博客网 时间:2024/06/01 09:20


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 Worker!! " + super.sleep   //重写toString()方法 这里"super."可以去掉}

输出:

The primary constructor of Person
This is the subclass of Person, Primary constructor of Worker
school: Spark
salary: 100000
I am a Worker!! 8 hours

参考资料来源于 DT大数据梦工厂 Scala零基础实战经典第12课 由王家林老师讲解

阅读全文
0 0