繼之前的封裝過後,今天我們來談談繼承.
喏....這就是繼承了 ○( ^皿^)っHiahia… ...開個玩笑
我來簡述一下繼承..其實繼承..就是變相的抄襲而已.抄襲..沒錯,就是抄襲..下面我給大家解釋一下什麼是抄襲..哦不,,什麼是繼承.....嘿嘿
我先舉個列子: 假如B要繼承(抄襲)A的東西(屬性,方法),那麼B該怎麼(繼承)抄襲呢..當然是使用extends關鍵字啦..
沒錯,上圖的意思就是B繼承A的屬性以及方法..形象點就是B抄襲A.當然了我並沒有添加什麼東西.這樣的繼承(抄襲)是沒有意義的.那麼,讓我們往A裡面添加一點東西看看.
我往A類裡面添加了一些屬性以及方法.根據我們上面提到的.B在抄襲(extends)A 那麼B類裡面是不是也應該有A類的屬性和方法呢,看下圖..
看到了吧..我沒有在B裡面定義任何東西.我new了一個B之後,直接就可以使用A類的屬性和方法..是不是很好玩..我說的對吧.繼承跟抄襲其實就是同義詞的.... 手動滑稽.
當然了,繼承不只是抄襲而已.想象一下.如果在生活中.你打算抄襲別人的作業.請問你是打算直接就照搬呢.還是邊修改邊抄襲(俗稱'借鑒')呢..
接下來我們就簡單的修改下我們抄襲的內容..O(∩_∩)O哈哈~ 比如..我們把copy的方法修改下..請看下圖.
發現沒,我在B裡面重新定義了一下A的copy方法(就是抄襲的時候修改了部分數據),然後我們在調用一下這個方法.b.copy()是不是發現結果從A類的copy方法變成了B類的copy方法了啊.
其中原理很簡單,就是B類的copy方法覆蓋了A類的copy方法..所以調用b.copy的時候輸出的是B類裡面的copy方法.
還有一點就是..B類方法覆蓋A類方法的這個動作在JAVA中被稱為 復寫
這裡需要注意一點的地方就是.方法參數的類型一定要一樣,,否則..咳咳
要不然..哼哼 你就沒有達到復寫的目的,應該發現了吧..最後打印出來的仍然是A類的copy方法.
B抄襲A,所以說,A是父類,B是子類....這個我不用解釋了
還要注意的就是.java不支持多繼承(自己百度為什麼不支持) 但是支持多重繼承 看下圖
就是說繼承的時候只能繼承一個.多重繼承就是..下圖
好了,繼承的概念說的差不多了..我接下來說一些繼承的用處.
假如說,你寫了一個項目,然後突然有一天,你發現需要修改一些方法,以及添加一些新的功能在項目中..你總不可能吧之前寫的東西全部刪除了吧..如果你那麼做..相信我,那絕對是一個災難.
那麼,我們究竟該怎麼做呢..沒錯..就是繼承.繼承的過程中不是允許我們復寫嗎?我們只需要創建一個新的類復寫掉之前的方法,然後在添加一些新的方法就OK了嘛.就算出了什麼問題,我們直接不管這個類就OK了嘛..我舉個例..請看圖
而如果後悔修改的時候,我們只需要將子類的東西注釋掉或者刪除就OK了.安全不..靠譜不..○( ^皿^)っHiahia…
繼承的基本使用方法我就先說到這裡了..明天再繼續更新.