为什么 Java 中的每个对象都隐式扩展 java.lang.Object 类? [英] Why does every object in Java implicitly extend java.lang.Object class?

查看:30
本文介绍了为什么 Java 中的每个对象都隐式扩展 java.lang.Object 类?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经用 Java 编程有一段时间了,但是当我试图向朋友解释 java.lang.Object 类是什么时,我想不出比一个简单的单线:

I have been programming in Java for quite some time, but when I tried to explain what an java.lang.Object class is to a friend, I could not come up with more than a simple one-liner:

Java 中的所有对象都隐式扩展 java.lang.Object

All objects in Java extend java.lang.Object implicitly

我不太确定为什么要这样做.

I was not quite sure why it should do so.

所以,我查看了 GrepCode,希望能找到一些线索.现在我知道 java.lang.Object 是什么以及它的作用,我想知道是否有任何具体的原因来设计它.

So, I looked upon the source code on GrepCode, hoping that I can find some clues. Now I know what a java.lang.Object is and what it does, I want to know if there was any specific reason as to why it was designed this way.

我的问题仍然存在:为什么每个对象都应该扩展java.lang.Object?

My question still prevails: why should every object extend java.lang.Object?

推荐答案

我想说的原因是java中的所有对象都有一个通用的API来支持像

I would say that the reason is to have a common API for all objects in java to supports basic functionality like

  • 同步 - waitnotifynotifyAll
  • 垃圾收集 - finalize
  • 集合支持 - hashCodeequals
  • 对象克隆 - clone
  • synchronization - wait, notify, notifyAll
  • garbage collection - finalize
  • collection support - hashCode, equals
  • object cloning - clone

和每个对象

  • 有一个它所属的类 - getClass
  • 可以将自己表示为一个字符串,因为我们是人类并且可以读取字符串 - toString

这篇关于为什么 Java 中的每个对象都隐式扩展 java.lang.Object 类?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆