为什么 Java 中的每个对象都隐式扩展 java.lang.Object 类? [英] Why does every object in Java implicitly extend java.lang.Object class?
问题描述
我已经用 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
- 同步 -
wait
、notify
、notifyAll
- 垃圾收集 -
finalize
- 集合支持 -
hashCode
、equals
- 对象克隆 -
clone
- synchronization -
wait
,notify
,notifyAll
- garbage collection -
finalize
- collection support -
hashCode
,equals
- object cloning -
clone
和每个对象
- 有一个它所属的类 -
getClass
- 可以将自己表示为一个字符串,因为我们是人类并且可以读取字符串 -
toString
这篇关于为什么 Java 中的每个对象都隐式扩展 java.lang.Object 类?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!