1.java學習---繼承
繼承的概述
就是子類繼承父類的屬性和行為,使得子類對象具有與父類相同的屬性、相同的行為。子類可以直接訪問父類中的非私有的屬性和行為。
繼承的格式
public class 子類 extends 父類{
}
繼承的優缺點
(1)子類自動擁有了父類的非私有的成員,子類也可以有自己的成員。
(2)提高了代碼的互用性和擴展性。
(3)耦合性太高,不利於開發原則:高內聚低耦合。
(4)java中只支持單繼承。
二、繼承的特點
繼承中成員變量的訪問特點
子類和父類的成員變量重名時,如Zi類和Fu類中都有int num;變量,可以用zi.num或fu.num進行訪問子類或父類中的變量。也可以用this和super關鍵字,this代表當前的對象,super代表父類對象,用this.num和super.num進行訪問。
如果局部變量中也有num時,直接訪問num,會根據就近原則,訪問這個局部變量的num.
2.繼承中成員方法的訪問特點
如果出現重名的方法,會使用子類的方法;不重名的情況下,現在子類中尋找該方法,找不到從父類中尋找。
三、繼承中的方法重寫
方法重寫的概念
子類中出現與父類一模一樣的方法時(返回值類型,方法名和參數列表都相同),會出現覆蓋效果,也稱為重寫或者復寫。聲明不變,重新實現 。
2.註意事項
(1)子類和父類的方法名和參數列表必須一樣。
(2)子類的返回值小於等於父類的返回值範圍。 建議父類的返回值是什麽,在子類的返回值就寫什麽類型。
(3)子類的權限必須是大於等於父類的權限, public > protected > (default) > private。
3.應用場景
當父類滿足不了子類的需求的時候,我們要重寫父類中的方法(當父類滿足了子類需求的時候,不需要重寫直接使用即可),在使用的時候,使用的是子類重寫父類後的方法,使子類有了特有的功能,也保有了父類的功能。
4.繼承中的構造方法
(1)構造方法的名字是與類名一致的。所以子類是無法繼承父類構造方法的。
(2)構造方法的作用是初始化成員變量的。所以子類的初始化過程中,必須先執行父類的初始化動作。子類的構造方法中默認有一個 super() ,表示調用父類的構造方法,父類成員變量初始化後,才可以給子類使用。
(3)如果不想讓子類默認調用父類的無參構造,必須是在子類中的構造方法的第一行寫,super(無參/有參),就不會默認調用父類的無參構造。
舉例:
運行結果:
1.java學習---繼承