第十一章 Scala的层级

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的类层级的最底端,它是任何其他类型的子类型。然而根本没有这个类型的任何值。它的用处是表明不正常的终止
文章导航