2013-02-20 118 views
0

我有一個在java中的查詢,因爲Object類是所有的父類,我想知道是Object類正在由java中的每個類隱式擴展。關於類的擴展

例如:如果我做一個對象類B然後我擴展類A這是因爲在java中確定,類最多可以延長只有一個班,但因爲我的課B含蓄地擴展了Object類,那麼怎麼能它擴展類A?請指教。

+2

'B' extends'A' extends'Object' – 2013-02-20 12:47:22

+1

'Object'將始終是您的類層次結構中最低的部分。 – 2013-02-20 12:47:39

+0

請考慮[FAQ](http://stackoverflow.com/faq)如何在此提問。當你用Java擴展一個類時,你也隱含地擴展了Object-class,因爲這是你的基類的一部分。如果您不擴展任何類,但創建一個新類,則隱式擴展Object。 – 2013-02-20 12:48:04

回答

0

只有當沒有指定父項時,它纔會隱含地繼承Object,否則它只會從指定的父項繼承。

旁註:

這是允許的:

C 
    | 
    A 
    | 
    B 

在上述情況下,與Object取代C是符合你的要求。

這是不允許的:

C A 
\/
    B 

繼承可以像你希望它是那樣深,但一個對象不能有多個父。

0

把它看作家庭樹,其中個人只有一個家長。每個人只有一個父母,但是,父母的所有祖先也是個人的祖先。這就是說,當所有的類都擴展爲Object時:這是所有類別中最遠的祖先,儘管只有那些聲明爲extends Object或沒有extends聲明的類的直接祖先(父)。

0

我想你知道這個概念,但你一定有點困惑。想想一棵樹。對象類是該樹的根。它有葉子和其他節點之間。無論你的班級設計如何,它最終都會成爲Object,因爲它的根源就在於此。所以你可以擴展任何類(而不是抽象或接口),而不用考慮Object類。因爲Object延期將自動爲您完成。

-1

在這裏,我會建議,關鍵字是EXPLICIT。你可以顯而易見只延伸一個類。但是,如果你不這樣做,Java將隱式地用Object類擴展你的類。如果你已經完成了這個對象,它必須位於繼承類的層次結構中。

+1

你有點重複在其他** 4 **答案中說過的話。 – Dukeling 2013-02-20 13:27:43