165 Scala 继承

在Scala中扩展类的方式和Java一样都是使用extends关键字

1.类型检查和转换

Scala Java
obj.isInstanceOf[C] obj instanceof C
obj.asInstanceOf[C] ©obj
classOf[C] C.class

2.超类的构造

package cn.itcast.scala

 
object ClazzDemo {
  def main(args: Array[String]) {
    //val h = new Human
    //println(h.fight)
  }
}

trait Flyable{
  def fly(): Unit ={
    println("I can fly")
  }

  def fight(): String
}

abstract class Animal {
  def run(): Int
  val name: String
}

class Human extends Animal with Flyable{

  val name = "abc"

  //打印几次"ABC"?
  val t1,t2,(a, b, c) = {
    println("ABC")
    (1,2,3)
  }

  println(a)
  println(t1._1)

  //在Scala中重写一个非抽象方法必须用override修饰
  override def fight(): String = {
    "fight with 棒子"
  }
  //在子类中重写超类的抽象方法时,不需要使用override关键字,写了也可以
  def run(): Int = {
    1
  }
}

上一篇:NET环境下的未处理异常(unhandled exception)的解决方案


下一篇:EDID、LVDS学习总结