Java由淺入深講解繼承下
本篇緊接上一篇內(nèi)容繼續(xù),還是從繼承里的細(xì)節(jié)開始
1.代碼塊初始化
關(guān)于代碼塊的定義和使用因為之前已經(jīng)進行過介紹,所以這里就不再贅述,我們所關(guān)注的點是父類和子類中的代碼塊在運行時候的先后順序是怎樣的
首先還是在父類以及子類中添加代碼塊,如下:
//父類 { System.out.println("父類實例代碼塊"); } static { System.out.println("父類靜態(tài)代碼塊"); } public Plant() { System.out.println("父類構(gòu)造方法"); } //子類 { System.out.println("子類實例代碼塊"); } static { System.out.println("子類靜態(tài)代碼塊"); } public Tree() { System.out.println("子類構(gòu)造方法"); }
我們在main方法中實例化子類對象后來看一下結(jié)果:
靜態(tài)代碼塊依舊是最先被執(zhí)行的,然后是父類的實例代碼塊和構(gòu)造方法,最后是子類的實例代碼塊和構(gòu)造方法
靜態(tài)代碼塊由于只執(zhí)行一次,所以如果再實例化一次子類對象的話父類和子類的靜態(tài)代碼塊都不會再執(zhí)行
2.protected關(guān)鍵字
之前的訪問修飾限定符中還遺留了一個protected,這里把這個坑填上,procted在包訪問權(quán)限的基礎(chǔ)上多了一個權(quán)限:不同包中的子類可以訪問父類的成員
假設(shè)Plant和Tree分別在兩個包中,那么Plant中protected修飾的成員依舊可以在Tree中使用super來進行訪問
需要注意的一點:父類必須是用public修飾,否則訪問權(quán)限不夠,不同包的兩個類根本無法構(gòu)成繼承關(guān)系
4個訪問修飾限定符都講完了,這里作一個總結(jié):
訪問范圍 | private | default | protected | public |
同一包中的同一類 | √ | √ | √ | √ |
同一包中的不同類 | × | √ | √ | √ |
不同包中的子類 | × | × | √ | √ |
不同包中的非子類 | × | × | × | √ |
3.final關(guān)鍵字
final關(guān)鍵字同樣是用來修飾類、方法以及變量的,作用如下:
修飾變量:成為常量,無法被修改
修飾方法:不能被重寫
修飾類:不能作為父類被其它類繼承
4.Java中允許的繼承方式
單繼承:A繼承B
多層繼承:A繼承B,B繼承C、C繼承D......
不同類繼承同一個父類:A繼承B,C也繼承B
但是Java中不允許一個類繼承多個父類(即C++中的多繼承)
Java繼承的內(nèi)容結(jié)束,后面就是多態(tài)的內(nèi)容,完
到此這篇關(guān)于Java由淺入深講解繼承下的文章就介紹到這了,更多相關(guān)Java繼承內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
IDEA調(diào)試小技巧之Evaluate調(diào)試工具詳解
這篇文章主要介紹了IDEA調(diào)試小技巧之Evaluate調(diào)試工具,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-09-09SpringBoot?實現(xiàn)動態(tài)添加定時任務(wù)功能
這篇文章主要介紹了SpringBoot?動態(tài)添加定時任務(wù),本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-02-02springboot項目中引入本地依賴jar包并打包到lib文件夾中
這篇文章主要介紹了springboot項目中引入本地依賴jar包,如何打包到lib文件夾中,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-04-04Spring boot調(diào)用Oracle存儲過程的兩種方式及完整代碼
這篇文章主要給大家介紹了關(guān)于Spring boot調(diào)用Oracle存儲過程的兩種方式及完整代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08