您好,登錄后才能下訂單哦!
這篇文章主要介紹“Java繼承應用實例分析”,在日常操作中,相信很多人在Java繼承應用實例分析問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Java繼承應用實例分析”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
關于代碼塊的定義和使用因為之前已經進行過介紹,所以這里就不再贅述,我們所關注的點是父類和子類中的代碼塊在運行時候的先后順序是怎樣的
首先還是在父類以及子類中添加代碼塊,如下:
//父類 { System.out.println("父類實例代碼塊"); } static { System.out.println("父類靜態代碼塊"); } public Plant() { System.out.println("父類構造方法"); } //子類 { System.out.println("子類實例代碼塊"); } static { System.out.println("子類靜態代碼塊"); } public Tree() { System.out.println("子類構造方法"); }
我們在main方法中實例化子類對象后來看一下結果:
靜態代碼塊依舊是最先被執行的,然后是父類的實例代碼塊和構造方法,最后是子類的實例代碼塊和構造方法
靜態代碼塊由于只執行一次,所以如果再實例化一次子類對象的話父類和子類的靜態代碼塊都不會再執行
之前的訪問修飾限定符中還遺留了一個protected,這里把這個坑填上,procted在包訪問權限的基礎上多了一個權限:不同包中的子類可以訪問父類的成員
假設Plant和Tree分別在兩個包中,那么Plant中protected修飾的成員依舊可以在Tree中使用super來進行訪問
需要注意的一點:父類必須是用public修飾,否則訪問權限不夠,不同包的兩個類根本無法構成繼承關系
4個訪問修飾限定符都講完了,這里作一個總結:
訪問范圍 | private | default | protected | public |
同一包中的同一類 | √ | √ | √ | √ |
同一包中的不同類 | × | √ | √ | √ |
不同包中的子類 | × | × | √ | √ |
不同包中的非子類 | × | × | × | √ |
final關鍵字同樣是用來修飾類、方法以及變量的,作用如下:
修飾變量:成為常量,無法被修改
修飾方法:不能被重寫
修飾類:不能作為父類被其它類繼承
單繼承:A繼承B
多層繼承:A繼承B,B繼承C、C繼承D......
不同類繼承同一個父類:A繼承B,C也繼承B
但是Java中不允許一個類繼承多個父類(即C++中的多繼承)
到此,關于“Java繼承應用實例分析”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。