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的類層級的最底端,它是任何其他類型的子類型。然而根本沒有這個類型的任何值。它的用處是表明不正常的終止