C062.Scala體系層次(Hierarchy)

太極者, 無極而生. 太極生二儀, 陰陽相隨.

Scala 是靜態類型的, 並且相比 Java 有著更強的類型系統。

老一代輝煌戰績的帝王 Java, 在根基上隨著時間, 隨著電腦科學的進步, 許多在當時合理的方式, 逐漸轉變成為今日的包袱甚至變成了缺陷, 它即將邁入老年, 且也為了最大的向下相容性, 我們隱性的必須接它缺陷, 甚至合理化問題來解釋它..., 但它真的需要一位繼承人, 能盡可能以合協而非破壞性的創作, 且可完全調用 Java 累積龐大的APIs, 接續並面對未來的電腦科學發展.

Scala 的體系層次, 在最根基的部份不再是 java.lang.Object ,  取而代之的是 scala.Any, 不僅僅只是名稱上的變更, 而是更嚴謹更健壯的改良於 java.lang.Object ...

Scala講座:類型系統和相關功能
Scala講座:函數式語言的體驗




QBQ: java.lang.Object


public class Object

類別 Object 是類別層次結構的根類別。每個類別都使用 Object 作為父級類別。所有物件(包括陣列)都實作這個類別的方法。

從以下版本開始:
JDK1.0
另請參見:
Class


QBQ(問題背後的問題),
  1. Java 是OO語言, 但身上且有著基本型態(Primitive Type) ...
  2. class Object 為了向下相容, 有著部份陳舊且非必要性存在的 methods.
  3. Thread 相關的方法非必要存於根類別.
  4. class Object 抽像度不夠高級, 且相對於 scala.Any 仍過於肥大.



Scala 類型體系


The Scala Type Hierarchy
  • scala.Any 是所有類的最基礎/根基類, 是所有 Scala 的父類別
  • scala.Ref 相當於 java.lang.Object 的角色
  • scala.Nothing 則是所有 Scala 最終子類別

http://programming-scala.labs.oreilly.com/ch07.html#scalas-type-hierarchy