面向對象入門2--繼承

1:代碼塊是什麼?代碼塊的分類和各自特點?

      java中,用{}括起來的代碼,就是代碼塊!
      局部代碼塊:用來限定變量的生命週期,出現在main方法中
      構造代碼塊:類中的成員位置,{代碼塊}用來給對象的數據進行初始化,每次執行構造方法之前,要執行構造代碼塊
      靜態代碼塊:類中的成員位置,也是用{代碼塊},在代碼的前面,用static代碼
      作用:靜態是和類有關係的,隨着類的加載而加載,給類進行初始化
      在類中:只加載一次!
    
2:靜態代碼塊,構造代碼塊,構造方法的執行流程?

     靜態代碼塊---->構造代碼塊----->構造方法
     構造代碼塊:每次在執行構造方法之前,要先走構造代碼塊
     靜態代碼:在內存中只加載一次!
 
3:繼承概述
     將多個類的共性內容,抽取到一個獨立的類中,獨立的類和着多個類就產生一種關係:extends:表示繼承
       格式:
         class Zi extends Fu{
     
         }

wKiom1lkHw7zEWntAADfvYJdviQ158.png-wh_50
     4:繼承的好處

     繼承的好處:
        A:提高代碼複用性
        B:提高代碼維護性
        C:讓類與類產生了一種關係,它是多態的前提!
 
       讓類與類產生的這種關係,也是一種弊端!
            耦合性
    
       java中開發原則:低耦合,高內聚
      
        耦合性:指的是多個類產生的這種關係
        內聚:指的是自己完成某件事情能力
  
5:Java中繼承的特點

       A: 在java中,只支持單繼承,不支持多繼承,
            別的語言,可以支持多繼承的:class Zi extends Father,Monther{..}
       B:雖然java中不支持多繼承,但是可以支持多層繼承
 
6:Java中繼承的注意事項?以及我們什麼時候使用繼承?

     注意事項:父類所有非私有的成員(成員方法和成員變量)
     其實這也體現了繼承的另一個弊端:打破了封裝性
     子類不能繼承父類的構造方法,但是可以通過super(後面講)關鍵字去訪問父類構造方法。
     不要爲了部分功能而去繼承
     什麼時候使用:中類之間體現的是:”is a”的關係。

7:繼承中的成員訪問特點

     A:成員變量
          在子類方法中訪問一個變量
     B:成員方法
          在測試類中通過子類對象去訪問一個方法
  

wKioL1lkHm_yyVIfAAEI1elyW6M596.png-wh_50
8:繼承中構造方法的執行流程?假如父類沒有無參構造方法,子類應該怎麼辦?

     若父類沒有無參構造方法,則:
          子類通過super去顯示調用父類其他的帶參的構造方法
          子類通過this去調用本類的其他構造方法
          本類其他構造也必須首先訪問了父類構造
   一定要注意:
            super(…)或者this(….)必須出現在第一條語句山
           否則,就會有父類數據的多次初始化


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章