繼承的概念:
繼承是java面向對象程式設計技術的一塊基石,因為它允許建立分等級層次的類。
繼承就是子類繼承父類的特征和行為,使得子類對象(執行個體)具有父類的執行個體域和方法,或子類從父類繼承方法,使得子類具有父類相同的行為。
生活中的繼承:
兔子和羊屬于食草動物類,獅子和豹屬于食肉動物類。
食草動物和食肉動物又是屬于動物類。
是以繼承需要符合的關系是:is-a,父類更通用,子類更具體。
雖然食草動物和食肉動物都是屬于動物,但是兩者的屬性和行為上有差别,是以子類會具有父類的一般特性也會具有自身的特性。
類的繼承格式:
在 Java 中通過 extends 關鍵字可以申明一個類是從另外一個類繼承而來的,一般形式如下:
為什麼需要繼承:
接下來我們通過一個執行個體來說明這個需求
開發動物類,其中動物名稱分别為企鵝和老鼠,要求如下:企鵝:屬性(id,姓名),方法(吃,睡,自我介紹)
老鼠:屬性(id,姓名),方法(吃,睡,自我介紹)
從這兩段代碼可以看出,代碼存在重複了,導緻後果就是代碼量大且臃腫,而且維護性不高。是以要從根本上解決這兩段代碼的問題,就需要繼承,将兩段代碼中相同的部分提取出來組成一個類。
這個Animal 類就可以作為一個父類,然後企鵝和老鼠類繼承這個類後,就具有了父類當中的屬性和方法,子類就不會存在重複的代碼,維護性也提高了,代碼也更加整潔,提高了代碼的複用性,繼承之後的代碼:
企鵝類
老鼠類
繼承類型
需要注意的是 Java 不支援多繼承,但支援多重繼承。
繼承的特性:
子類擁有父類非private 的屬性和方法
子類可以擁有自己的屬性和方法,即子類可以對父類進行擴充
子類可以用自己的方式實作父類的方法
Java的繼承是單繼承,但是可以多重繼承,單繼承就是一個子類隻能繼承一個父類,多重繼承就是,例如A類繼承B類,B類繼承C類,是以按照關系就是C類是B類的父類,B類是A類的父類。
提高了類之間的耦合性(繼承的缺點,耦合度高會造成代碼之間的聯系越緊密,代碼獨立性越差)