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