首页 > 解决方案 > Scala 中的基类是什么,就像 Java 中的 Object 一样?

问题描述

在 Java 中,Object 是基类,它被所有其他类扩展。Scala 中的等价基类是什么?

标签: scala

解决方案


没那么快!;)

这个问题似乎有点不合时宜,因为原始类型不是从ObjectJava 中扩展而来的。因此,Java 根本不像 Scala。所有引用类型的基类(对应Object于 Java 中的子类)实际上是AnyRef,而不是Any.

事实上,关于统一类型的 Scala Tour 页面指出:

AnyRef 表示引用类型。所有非值类型都定义为引用类型。Scala 中的每个用户定义类型都是 AnyRef 的子类型。如果在 Java 运行时环境的上下文中使用 Scala,AnyRef 对应于 java.lang.Object。

所有类型的基类 ( Any) 和所有引用类型的基类 ( AnyRef) 是两个独立的概念。


推荐阅读