我有一個在java中的查詢,因爲Object
類是所有的父類,我想知道是Object
類正在由java中的每個類隱式擴展。關於類的擴展
例如:如果我做一個對象類B
然後我擴展類A
這是因爲在java中確定,類最多可以延長只有一個班,但因爲我的課B
含蓄地擴展了Object
類,那麼怎麼能它擴展類A
?請指教。
我有一個在java中的查詢,因爲Object
類是所有的父類,我想知道是Object
類正在由java中的每個類隱式擴展。關於類的擴展
例如:如果我做一個對象類B
然後我擴展類A
這是因爲在java中確定,類最多可以延長只有一個班,但因爲我的課B
含蓄地擴展了Object
類,那麼怎麼能它擴展類A
?請指教。
只有當沒有指定父項時,它纔會隱含地繼承Object
,否則它只會從指定的父項繼承。
旁註:
這是允許的:
C
|
A
|
B
在上述情況下,與Object
取代C
是符合你的要求。
這是不允許的:
C A
\/
B
繼承可以像你希望它是那樣深,但一個對象不能有多個父。
把它看作家庭樹,其中個人只有一個家長。每個人只有一個父母,但是,父母的所有祖先也是個人的祖先。這就是說,當所有的類都擴展爲Object
時:這是所有類別中最遠的祖先,儘管只有那些聲明爲extends Object
或沒有extends
聲明的類的直接祖先(父)。
我想你知道這個概念,但你一定有點困惑。想想一棵樹。對象類是該樹的根。它有葉子和其他節點之間。無論你的班級設計如何,它最終都會成爲Object
,因爲它的根源就在於此。所以你可以擴展任何類(而不是抽象或接口),而不用考慮Object
類。因爲Object
延期將自動爲您完成。
在這裏,我會建議,關鍵字是EXPLICIT。你可以顯而易見只延伸一個類。但是,如果你不這樣做,Java將隱式地用Object類擴展你的類。如果你已經完成了這個對象,它必須位於繼承類的層次結構中。
你有點重複在其他** 4 **答案中說過的話。 – Dukeling 2013-02-20 13:27:43
'B' extends'A' extends'Object' – 2013-02-20 12:47:22
'Object'將始終是您的類層次結構中最低的部分。 – 2013-02-20 12:47:39
請考慮[FAQ](http://stackoverflow.com/faq)如何在此提問。當你用Java擴展一個類時,你也隱含地擴展了Object-class,因爲這是你的基類的一部分。如果您不擴展任何類,但創建一個新類,則隱式擴展Object。 – 2013-02-20 12:48:04