加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

scala_类的继承

发布时间:2020-12-16 18:54:15 所属栏目:安全 来源:网络整理
导读:Scala继承一个基类跟Java很相似,但我们需要注意以下几点: 重写一个非抽象方法必须使用override修饰符,以及重写父类属性也必须使用override修饰符。 只有主构造函数才可以往基类的构造函数里写参数。 在子类中重写超类的抽象方法时,你不需要使用override关

Scala继承一个基类跟Java很相似,但我们需要注意以下几点:

  1. 重写一个非抽象方法必须使用override修饰符,以及重写父类属性也必须使用override修饰符。
  2. 只有主构造函数才可以往基类的构造函数里写参数。
  3. 在子类中重写超类的抽象方法时,你不需要使用override关键字。
  4. 可以使用super关键字,显式地指定要调用父类的方法
 1 class Point(val xc: Int,val yc: Int){
 2   var x: Int = xc
 3   var y: Int = yc
 4   def move(dx: Int,dy: Int): Unit ={
 5     x = x + dx
 6     y = y + dy
 7     println("x点的坐标是:" + x)
 8     println("y点的坐标是:" + y)
 9   }
10   
11   var name = ""
12   override def toString = getClass.getName + "[name=" + name + "]"
13 }
 1 class Location(override val xc: Int,override val yc: Int, 2                val zc: Int) extends Point(xc,yc){  // 继承   重写了父类的字段
 3   var z: Int = zc
 4   def move(dx: Int,dy: Int,dz: Int){
 5     x = x + dx
 6     y = y + dy
 7     z = z + dz
 8     println("x点的坐标是:" + x)
 9     println("y点的坐标是:" + y)
10     println("z点的坐标是:" + z)
11   }
12   
13   var salary = 0.0
14   override def toString = super.toString + "[salary=" + salary + "]"
15 }
 1 object Test{
 2   def main(args: Array[String]): Unit = {
 3     val loc = new Location(10,20,30)
 4     loc.move(10,10,5)、
 6     loc.name = "lc"
 7     loc.salary = 35000.0
 8     println(loc)
 9   }
10 }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读