-
1 # 淺析架構
-
2 # 美琴醬的胖次
object是頂端的父類,
簡單的說吧,你做的每個子類總對應有一個父類,當你的上級父類沒有繼承其他類的時候會自動繼承object,
列如: 有abcd類,對應關係 a>b,b>c,c>d,最上級的父類a會自動繼承object類。
已經說的很簡單了,或者樓主去度娘也行
-
3 # 程式碼飼養員天齊
不請自來啊!!為什麼呢?因為本人感覺Java程式設計是一件很有意思的事情,並且很願意研究瞭解Java以及其他一些語言。那麼,針對此問題說一下個人的一些理解,與大家一塊分享一下,可能有不合適的地方,也希望看到的同學幫忙指正,以期共同進步。
首先,繼承是面向物件程式語言的四大特性之一。繼承在Java語言中被廣泛使用。繼承有點像自然界中的遺傳,父輩會將基因特性遺傳給子代。對子代來說就是繼承。這就是說明繼承是符合自然規律的,具有極高的通用性,Java語言具有這樣的特點,自然Java語言具有了發展進化的可能性。
在Java中繼承使用extends關鍵字,繼承父類後,可以使用父類的變數和方法,起到了很好的程式碼複用的作用。Java中子類可以定義與父類相同的變數,可以起到隱藏父類變數的作用。子類可以覆寫父類的方法,可以覆蓋父類的方法作用。這樣的話,子類就具有了進化的功能。
Java吸收了C++的一些優點,但摒棄了C++的多繼承。摒棄多繼承的主要原因是當子類繼承的多個父類有相同的變數或方法時,子類不知道呼叫哪個父類的變數或方法,這就是呼叫的不確定性。
Java雖然不支援多繼承,但支援多層繼承。即父親的父親的父親
...
,如下圖所示:D類繼承自C類,C類繼承自B類,B類繼承自A類。當然上層相對於下層是更高的抽象。
其中Object類是類層次結構的根類,每個類都使用Objec類作為超類,即可以這樣理解。如下圖所示,可以認為A繼承自Object,這樣最下層的D自然繼承自Object,這不破壞的Java的單繼承。即Java支援多層繼承,但不支援多繼承。這樣應該可以理解為什麼感覺一個類(例如D)繼承了一個類(類C),又繼承了一個類(Object)。
本人具有多年的java開發經驗,熟悉多種框架,熟悉網路程式設計,熟悉java安全程式設計,熟悉大資料,熟悉多種安全協議,有興趣的同學可以互相關注,互相學習!!!
回覆列表
1.Java只支援單繼承,但是可以實現多個介面。如果A沒有顯示繼承任何類,系統會預設繼承Object類,但是如果A顯示繼承了B,系統就不會給A預設繼承Object了,但是A會繼承B,B繼承Object,相當於A間接繼承了Object。
2.說到繼承就會想到面向物件裡面的一個原則:優先使用組合而不是繼承。為什麼了?
首先,繼承和組合都是都可以達到程式碼複用的效果。個人覺得有以下幾點考慮:
1.繼承的父類也就繼承了父類的成員,增加耦合性
2.父類有變動,會影響子類,而組合只需要確保介面穩定
3.子類繼承父類在編譯期就決定了,不能動態變化,而組合可以根據需要使用不同的實現類。
所以,組合更加靈活,具有可擴充套件性。
但是如果需要向上轉型,或者明確類關係是is-a的關係還是需要使用繼承的。