1. 程式人生 > >java三大特性

java三大特性

obj 子類重寫 fault prot 改變 靜態初始化 輔助 是否 當前

繼承

繼承更加容易實現類的擴展。使用extends

註:

  • Java中類只有單繼承,接口有多繼承。
  • 子類繼承父類,可以得到父類的全部屬性和方法 (除了父類的構造方法),但不見得可以直接訪問(比如,父類私有的屬性和方法)。
  • 所有類的父類:Object。
  • instanceof是二元運算符,左邊是對象,右邊是類;當對象是右面類或子類所創建對象時,返回true;否則,返回false。

方法的重寫override

子類通過重寫父類的方法,可以用自身的行為替換父類的行為。方法的重寫是實現多態的必要條件。

方法的重寫需要符合下面的三個要點:

  1. “==”: 方法名、形參列表相同。
  2. “≤”:返回值類型和聲明異常類型,子類小於等於父類。
  3. “≥”: 訪問權限,子類大於等於父類。

==和equals方法

“==”代表比較雙方是否相同。如果是基本類型則表示值相等,如果是引用類型則表示地址相等

Object 的 equals 方法默認就是比較兩個對象的hashcode,是同一個對象的引用時返回 true 否則返回 false。但是,我們可以根據我們自己的要求重寫equals方法。

super

super是直接父類對象的引用。可以通過super來訪問父類中被子類覆蓋的方法或屬性。

若是構造方法的第一行代碼沒有顯式的調用super(...)或者this(...);那麽Java默認都會調用super(),含義是調用父類的無參數構造方法。

構造方法調用順序:

構造方法第一句總是:super(…)來調用父類對應的構造方法。所以,流程就是:先向上追溯到Object,然後再依次向下執行類的初始化塊和構造方法,直到當前子類為止。

註:靜態初始化塊調用順序,與構造方法調用順序一樣,不再重復。

封裝

需要讓用戶知道的才暴露出來,不需要讓用戶知道的全部隱藏起來,這就是封裝。封裝就是把對象的屬性和操作結合為一個獨立的整體,並盡可能隱藏對象的內部實現細節。

封裝的實現——訪問控制符

技術分享圖片

  1. private 表示私有,只有自己類能訪問

  2. default表示沒有修飾符修飾,只有同一個包的類能訪問

  3. protected表示可以被同一個包的類以及其他包中的子類訪問

  4. public表示可以被該項目的所有包中的所有類訪問

類的屬性的處理:

  1. 一般使用private訪問權限。

  2. 提供相應的get/set方法來訪問相關屬性,這些方法通常是public修飾的,以提供對屬性的賦值與讀取操作(註意:boolean變量的get方法是is開頭!)。

  3. 一些只用於本類的輔助性方法可以用private修飾,希望其他類調用的方法用public修飾。

多態

多態指的是同一個方法調用,由於對象不同可能會有不同的行為。

註:

  1. 多態是方法的多態,不是屬性的多態(多態與屬性無關)。
  2. 多態的存在要有3個必要條件:繼承,方法重寫,父類引用指向子類對象。
  3. 父類引用指向子類對象後,用該父類引用調用子類重寫的方法,此時多態就出現了。

對象的轉型(casting)

父類引用指向子類對象,我們稱這個過程為向上轉型,屬於自動類型轉換。

向上轉型後的父類引用變量只能調用它編譯類型的方法,不能調用它運行時類型的方法。這時,我們就需要進行類型的強制轉換,我們稱之為向下轉型!

final關鍵字

  1. 修飾變量: 被他修飾的變量不可改變。一旦賦了初值,就不能被重新賦值。
  2. 修飾方法:該方法不可被子類重寫。但是可以被重載!
  3. 修飾類: 修飾的類不能被繼承。比如:Math、String等。

java三大特性