1. Any,是 scala 中的抽象类,不能实例化
  2. AnyRef 继承于 Any,它是一个 trait
  3. AnyVal 继承于 Any,它是一个抽象类,目的是消除基本类型,scala中只有引用类型,仅此作用
  4. Any、Object 定义上没有任何关系
  5. AnyRef、Object 定义上没有任何关系
  6. scala 的继承体系是通过 Any、AnyRef  实现的。为了兼容 java 的 Object 继承体系,将 AnyRef 置于与 Object 同等地位,即二者的  Class 类型相同。这样凡是 Object 继承体系的子类,都是  AnyRef  的子类;相反 AnyRef 继承体系生成的子类,也是 Object 的子类。这样 Object 的子类,可以被 AnyRef 子类继承或者实现,因为它是 AnyRef。同样,AnyRef 的子类,也可以被 Object 子类继承或者实现,因为它是 Object。这样两套继承体系兼容。
  7. 因为 scala 将 AnyRef 置于与 Object 同等的地位,所以从继承关系上来说,scala将 Any 置于 Object 的父类位置。从 scala 语法上来说是这样,但是对于 jvm 来说,Object 是顶级类,所以,scala 必然将 Any编译为 Object,即 Any 实质是 Object。从 scala 语法层面,Any 是 Object 的父类。实际上任何 Any 的子类,也必然编译为 Object 的子类。Any 只是名义上的顶级,仅此而已。

总结:从 scala 层面,Any  顶级,AnyRef、Object 是子类且不同。 从 jvm 层面,Object 顶级, Any、AnyRef 是子类,且不同。

最新文章

  1. 12-rm 命令总结
  2. Codeforces Intel Code Challenge Final Round (Div. 1 + Div. 2, Combined) A. Checking the Calendar(水题)
  3. Android BaseAdapter 数据和显示之间的Adapter 接口
  4. php中并发读写文件冲突的解决方案(文件锁应用示例)
  5. C++十进制转换为二进制
  6. SPA初试-1
  7. Yii框架-Smarty-整合
  8. NSString截取文件名(很笨的方法)
  9. 0118——UILabel和导入字体
  10. Java1.5泛型指南中文版(Java1.5 Generic Tutorial)
  11. 记录一次参加D2前端技术论坛的杭州之行
  12. jquery中的事件与应用
  13. MySQL · 引擎特性 · InnoDB 数据页解析
  14. typora画图
  15. koa 学习1
  16. MySQL查询本周、上周、本月、上个月份数据的sql脚本
  17. linux 中的 open() read() write() close() 函数
  18. Android使用腾讯浏览服务X5内核
  19. tensorflow学习总结之reduce_sum函数
  20. AdapterViewFlipper功能 自动播放的图片库

热门文章

  1. D-Power Products
  2. 基于netty实现rpc框架-spring boot服务端
  3. 详解 final 和 static
  4. 【mybatis xml】数据层框架应用--Mybatis 基于XML映射文件实现数据的CRUD
  5. SpringCloud(七)超时、重试
  6. json:格式化数据
  7. ES[7.6.x]学习笔记(三)新建索引
  8. PE文件学习(2)导入表导出表
  9. Session服务器之Redis
  10. 《C Primer Plus(第6版)中文版》一1.12 复习题