1. 程式人生 > >1.java學習---繼承

1.java學習---繼承

無法 extends this adding 行為 方法 def 支持 ESS

一、繼承的基本概述

  1. 繼承的概述

    就是子類繼承父類的屬性和行為,使得子類對象具有與父類相同的屬性、相同的行為。子類可以直接訪問父類中的非私有的屬性和行為。

  2. 繼承的格式

    public class 子類 extends 父類{

    }

  3. 繼承的優缺點

    (1)子類自動擁有了父類的非私有的成員,子類也可以有自己的成員。

    (2)提高了代碼的互用性和擴展性。

    (3)耦合性太高,不利於開發原則:高內聚低耦合。

    (4)java中只支持單繼承。


二、繼承的特點

  1. 繼承中成員變量的訪問特點

    子類和父類的成員變量重名時,如Zi類和Fu類中都有int num;變量,可以用zi.num或fu.num進行訪問子類或父類中的變量。也可以用this和super關鍵字,this代表當前的對象,super代表父類對象,用this.num和super.num進行訪問。

    如果局部變量中也有num時,直接訪問num,會根據就近原則,訪問這個局部變量的num.


2.繼承中成員方法的訪問特點

如果出現重名的方法,會使用子類的方法;不重名的情況下,現在子類中尋找該方法,找不到從父類中尋找。


三、繼承中的方法重寫

  1. 方法重寫的概念

    子類中出現與父類一模一樣的方法時(返回值類型,方法名和參數列表都相同),會出現覆蓋效果,也稱為重寫或者復寫。聲明不變,重新實現

2.註意事項

(1)子類和父類的方法名和參數列表必須一樣。

(2)子類的返回值小於等於父類的返回值範圍。 建議父類的返回值是什麽,在子類的返回值就寫什麽類型。

(3)子類的權限必須是大於等於父類的權限, public > protected > (default) > private。

3.應用場景

當父類滿足不了子類的需求的時候,我們要重寫父類中的方法(當父類滿足了子類需求的時候,不需要重寫直接使用即可),在使用的時候,使用的是子類重寫父類後的方法,使子類有了特有的功能,也保有了父類的功能。

4.繼承中的構造方法

(1)構造方法的名字是與類名一致的。所以子類是無法繼承父類構造方法的。
(2)構造方法的作用是初始化成員變量的。所以子類的初始化過程中,必須先執行父類的初始化動作。子類的構造方法中默認有一個 super() ,表示調用父類的構造方法,父類成員變量初始化後,才可以給子類使用。

(3)如果不想讓子類默認調用父類的無參構造,必須是在子類中的構造方法的第一行寫,super(無參/有參),就不會默認調用父類的無參構造。

舉例:

技術分享圖片


技術分享圖片


技術分享圖片


運行結果:

技術分享圖片







1.java學習---繼承