2011-12-26 54 views
0

怎么会Java中的每个类是从名为java.lang.Object的类继承的,即使我们不extend它明确?每个类如何继承Object类?

什么是发生在幕后?

+6

我总是怀疑*为什么'A'在'B'之前?* – 2011-12-26 05:22:46

+0

@HarryJoy虽然讽刺并不赞赏SO,幽默+1:D – COD3BOY 2011-12-26 05:33:45

回答

1

在Java平台中所有类是对象的继承者。对象类没有超类,每个类都有且仅有一个直接超类(单继承)。在没有任何其他显式超类的情况下,每个类都隐式地是Object的一个子类。

javadoc

0

嗯,因为每一个类从对象继承。这是多余的。

+0

是的。我明白每个类都是Object的子类。但是它应该在某处进行设计/编码。它在哪里?他们在哪个班上完成了这项工作? – Srinivasan 2011-12-26 05:28:07

+0

这是由编译器完成的,而不是由某个类完成的。 – MByD 2011-12-26 05:29:03

+0

任何人都有明确解释这个概念的链接? – Srinivasan 2011-12-26 05:34:16

1

这是一个设计决策的Java的厂商就跟着,早在时间的迷雾。我相信每个对象都带有少量基本方法(hashCode,equals,wait,notify)的实现,而不需要专门编写它们。这有很多好处 - 具有hashCode和equals的实现使得像Sets和HashMaps这样的工作很好;具有通知和等待的实现使得多线程编程更容易。

至于发生了什么幕后 - 好吧,我想你需要寻找到编译器或者JVM的源代码。但是,真的没有多少意义。大多数Java开发人员都对每个对象都是对象这一事实感到满意 - 这是使Java成为事物的那些东西之一。

+0

我同意。但是我无法找出实现这个概念的确切类。你能说出实际工作完成的确切类名吗? – Srinivasan 2011-12-26 11:37:34