更新時間:2022-06-24 09:15:38 來源:動力節點 瀏覽1608次
Java父類子類的執行順序是怎樣的?動力節點小編告訴大家,java和其他語言一樣,子類可以繼承父類,但父類不能繼承子類。
譬如創建兩個類,一個Fruit類,一個Apple類,你可以Fruit a = new Apple,不可以Apple a = new Fruit。
以常用的List型為例,你可以List l = new ArraytList,但不可以反著來。
而在List,Set等類型中,即使時它們的具體類型(就是用兩個三角括號包起來的那個)是父子類的關系,它們也不能互相繼承。
比如List a = new List,Set l =new Set,這兩種寫法都是錯的,但是List s = new ArrayList是正確的。
通過這兩個例子,可以粗略的看到,對與可以進行細化元素類型的類型,即使細化的元素互為父子類關系,它們也不能夠互相繼承,而對類型本身則是不會遇到這個問題的。
這是因為java在運行程序時,會把List、Set之類的類型的類型細化(后面三角括號里的東西)全部擦除,擦除的結果就導致在運行時如果加入屬于List但不屬于ArrayList(以Set l =new Set這句代碼為例)的元素,系統不會報錯。這無疑會造成嚴重的錯誤。因此,為了避免這種錯誤,java決定在系統運行之前的檢查中就規避掉這種行為。
同時,對于java的子類型還有如下的約束:
1.子類型可以增加方法,但不能刪除方法
2.子類型需要具體化父類型中抽象的方法
3.子類型方法有更多的不變量,更強的前置條件和更弱的后置條件
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習