Scala继承层次

Scala继承层次

  • 与Java对象的8种类以及Unit 扩展自AnyVal
  • 所有其他的类都扩展自AnyRef 与java中的Object 同义词。
  • AnyVal与AnyRef 都扩展子Any Any是继承的根节点
  • AnyVal没有追加任何方法,他只是所有值类型的一个标记
  • AnyRef 追加了来自Object的wait 以及Notify/notifyAll 同事提供了一个带函数参数的synchronized 等同于java的 sunchronized语句块。
  • 所有的类都实现了ScalaObject这个标记接口,没有定义任务方法

继承层级的另一端

  • NULL
  • Nothing

Null 只有一个实例 null 表示一个不确定的实例,你可以将他赋值给任何一个类但是不能赋值给扩展自AnyVal,与java的包装器有区别,java的包装器可以设置为null。

Nothing没有实例。

Nothing 与void 是不同的概念,scala中的Unit表示java中的void Unit只有一个实例。