Any是所有其他类的超类,Nothing是所有其他类的子类
-
Scala的层级
- Any类中的方法
- final def == (that : Any) : Boolean
- final def != (that : Any) : Boolean
- def equals(that: Any) : Boolean
- def hashCode : Int
- def toString : String
- 两个子类
- AnyVal是Scala里每个内建值类的父类,除了Java中的八种基本类型还要加上Scala特有的Unit(实例值是 “”“()”“” ),类似于void
- AnyRef是所有引用类的基类,实际就是类Java.lang.Object的别名,但在Scala程序里推荐使用AnyRef
- 不同
- Scala类还继承自一个名为ScalaObject的特别的记号特质。为了加速模式匹配。
-
原始类型是如何实现的
- Scala中 == 操作被设计为对类型表达透明
- 对值类型来说,就是自然的相等
- 对引用类型来说,它被视为继承自Object的equals方法的别名
- 该方法初始地定义为引用相等,但被许多子类重写以实现他们自然理念上的相等性
-
底层类型
- Null类是null引用对象的类型,它是每个引用类的子类,且不兼容值类型
- Nothing类型在Scala的类层级的最底端,它是任何其他类型的子类型。然而根本没有这个类型的任何值。它的用处是表明不正常的终止