继承

package com.jason.qianfeng

class Point(val xc: Int, val yc: Int) {
  var x: Int = xc
  var y: Int = yc

  def move(dx: Int, dy: Int): Unit = {
    x = x + dx
    y = y + dy
    println(s"x : $x , y : $y")
  }
}

class Location(override val xc: Int, override val yc: Int, val zc: Int) extends Point(xc, yc) {
  var z = zc

  def move(dx: Int, dy: Int, dz: Int): Unit = {
    x = x + dx
    y = y + dy
    z = z + dz
    println(s"x : $x , y : $y , z : $z")
  }


}

object TestPoint {
  def main(args: Array[String]): Unit = {
    val obj = new Location(1, 2, 3)
    obj.move(2, 3, 4)

    val obj2 = new Point(2,3)
    println(obj.isInstanceOf[Point])
    println(classOf[Point])
  }
}

1.若继承了父类的属性,则需要加override关键字 ,如下:

class Location(override val xc: Int, override val yc: Int, val zc: Int) extends Point(xc, yc)

2.子类继承了父类的属性和方法

3.final修饰的类,属性,方法不可重写

posted @ 2018-08-19 22:15  生心无住  阅读(93)  评论(0编辑  收藏  举报