2011-12-26 96 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