Scala学习第十二天 Scala中的继承:超类的构造、重写字段、重写方法代码实战

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()) //调用重写方法
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值