1. 程式人生 > >用文字描述static、this、super、final、abstract關鍵字的特點以及應用

用文字描述static、this、super、final、abstract關鍵字的特點以及應用

static
用static修飾的方法屬於這個類,因此即使沒有建立該類的具體物件,類中用static修飾的方法也會存在。

類名.方法名([實參表]);this
this關鍵字作為自身的引用,其作用就是在類的自身方法中引用該類自身.在同一個類中,類的成員變數是不能重名的,但方法或語句塊中的區域性變數是可以和類的成員變數重名的,這時候必須使用this來限定和區分是否是類變數。方法間的互相應用也可以使用this關鍵字,this引用也可以用於構造方法中作為預設引用
 
super
super是Java提供的一個關鍵字,它是直接父類物件的預設引用。
正如this不能出現在static修飾的方法中一樣,super也不能出現在static的方法中
如果子類定義了和父類同名的屬性,也會發生子類屬性覆蓋父類屬性的情形。子類的方法直接訪問該屬性時,都會訪問到覆蓋屬性,無法訪問父類被覆蓋的屬性---通過super來訪問父類被覆蓋的屬性
.如果需要在子類方法中呼叫父類被覆蓋的例項方法,可以用super作為呼叫者來呼叫父類被覆蓋的例項方法。
final
final關鍵字可用於修飾類、變數和方法,用於表示它修飾的類、變數和方法不可改變。
 final修飾變數時,表示該變數一旦獲得了初始值之後就不可被改變,final既可修飾成員變數(包括類變數和例項變數),也可以修飾區域性變數、形參.
abstract
抽象方法的返回值型別前有關鍵字abstract;
抽象方法沒有方法體;
抽象方法的定義是一行單獨語句,以分號結束;
在抽象方法宣告中使用static修飾符是錯誤的。
類中如果定義了抽象方法,這個類必須定義為抽象類。
      [public]  abstract  class 類名{
            //類體(屬性、非抽象方法、抽象方法、構造方法)
            //類體(初始化塊、內部類、列舉類)  
      }
抽象類不能建立自己的物件,使用new建立抽象類物件將產生錯誤。
子類繼承抽象類時,應該覆蓋抽象類中的所有抽象方法,否則子類也必須定義為抽象類。
含有抽象方法的類(包括直接定義了一個抽象方法;繼承了一個抽象父類,但沒有完全實現父類包含的抽象方法)只能被定義成抽象類。但抽象類中卻並一定包含抽象方法。
抽象方法和空方法體的方法不是同一個概念