Object
java中类的作用是什么?任何用户定义类的所有“对象”都具有与上述类相同的功能。那么为什么java的创建者要创建这个类呢?在哪些情况下应该使用“对象”类?
4 回答
由于 Java 中的所有类都必须(直接或间接)从 派生Object
,因此它允许对所有对象所需或有用的许多行为(例如转换为字符串或散列生成函数)进行默认实现。
此外,使系统中的所有对象都具有共同的血统允许人们在一般意义上使用对象。这对于开发各种通用应用程序和实用程序非常有用。例如,您可以构建一个通用的缓存实用程序来处理任何可能的对象,而不需要用户实现一个特殊的接口。
几乎唯一Object
使用 raw 的时间是当它用作锁定对象时(如Object foo = new Object(); synchronized(foo){...}
. 将对象用作synchronized
块的主题的能力内置于Object
,并且在那里使用更重量级的东西没有意义。
Object
提供具有 Java 语言设计者认为所有 Java 对象都应提供的功能的接口。Object
当您不知道类的子类型,并且只想以通用方式对待它时,您可以使用它。在 Java 语言支持泛型之前,这一点尤其重要。
在programmers.stackexchange.com 上有一篇关于为什么选择.NET 的有趣帖子,这些决定很可能与Java 语言相关。
Java 实现的有时被称为“宇宙层次结构”。这意味着Java中的所有类都共享一个共同的根。
这本身就具有优点,可用于“通用”容器。如果没有模板或语言支持的泛型,这些将更难实现。
它还提供了所有类自动共享的一些基本行为,例如 toString 方法。
早在 1996 年就有这个通用的超类被视为一种新奇和酷的东西,它帮助 Java 变得流行(尽管也有这种宇宙层次结构的支持者)。