1. 程式人生 > >Java面向物件特性

Java面向物件特性

1.封裝

將類的儘可能多的成員隱藏起來,防止外部類去隨意修改它們,但是它提供公共的 setter/getter方法給外部類使用。

右鍵程式碼編輯塊

getStr()和setStr()方法是由系統自動生成的,我們可以對setStr()方法進行一些修該達到限制的作用!

2.繼承:(extends)

 在面向物件程式設計中,可以通過擴充套件一個以有的類,並繼承該類的屬性和行為,來建立一個新的類,這種方式稱為繼承。

     java  在語法中值支援單一繼承,一個類只能有一個父類;在概念中支援多繼承(傳遞繼承

使用extends來表明繼承關係。

使用super來呼叫父類的屬性和方法等。

概念

【1】建構函式 

【2】向上造型

 【3】方法的重寫(override)

1).重寫原則

  重寫遵循“兩同兩小一大”原則:

  1)兩同:

    1.1)方法名相同

    1.2)引數列表相同

  2)兩小:

    2.1)子類方法的返回值型別要小於或等於父類

      2.1.1)void時,必須相同

      2.1.2)基本資料型別時,必須相同

      2.1.3)引用型別時,小於或等於

    2.2)子類方法丟擲的異常要小於或等於父類的----異常之後

  • super()調父類構造必須位於子類構造的第一句!!!
  • 一個子類的物件可以向上造型為父類的型別。即定義父型別的引用可以指向子類的物件
  • 父類的引用可以指向子類的物件,但通過父類的引用只能訪問父類所定義的成員,不能訪問子類擴充套件的部分(能點出什麼看引用) 
  • 通俗來講就是子類可以替代父類,而父類不可以!
  • 發生在父子類中,方法簽名相同,方法體不同:子類可以重寫(覆蓋)繼承自父類的方法,即方法名和引數列表與父類的方法相同,但方法的實現不同(方法體不同)
  • 重寫方法被呼叫時,看物件的型別:當子類物件的重寫方法被呼叫時(無論是通過子類的引用呼叫還是通過父類的引用呼叫),執行的是子類的重寫後的版本
  • 子類在重寫父類的方法時,可以通過super關鍵字呼叫父類的版本,這樣的語法通常用於子類的重寫方法在父類方法的基礎之上進行功能擴充套件。
  • 當子類物件的重寫方法被呼叫時(無論通過子類的引用還是通過父類的引用),執行的都是子類重寫後的方法。

        3)一大:

    3.1)子類方法的訪問許可權要大於或等於父類的----訪問控制修飾符之後

2)重寫和過載的區別

  • 重寫(Override):

        1.發生在父子類中,(方法簽名相同)方法名稱相同,引數列表相同,方法體不同  

        2.遵循“執行期”繫結,重寫方法被呼叫時,看物件的型別

  • 過載(Overload):

       1.發生在同一類中,方法名稱相同,引數列表不同,方法體不同  

        2.遵循“編譯期”繫結,看引用的型別繫結方法

3.多型

多型是同一個行為具有多個不同表現形式或形態的能力。