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只有一个实例。