天天看點

總結下java中abstract,interface,final,static,加深了解

一,抽象類:abstract

    1,隻要有一個或一個以上抽象方法的類,必須用abstract聲明為抽象類;

    2,抽象類中可以有具體的實作方法;

    3,抽象類中可以沒有抽象方法;

    4,抽象類中的抽象方法必須被它的子類實作,如果子類沒有實作,則該子類繼續為抽象類

    5,抽象類不能被執行個體化,但可以由抽象父類指向的子類執行個體來調用抽象父類中的具體實作方法;通常作為一種預設行為;

    6,要使用抽象類中的方法,必須有一個子類繼承于這個抽象類,并實作抽象類中的抽象方法,通過子類的執行個體去調用;

二,接口:interface

    1,接口中可以有成員變量,且接口中的成員變量必須定義初始化;

    2,接口中的成員方法隻能是方法原型,不能有方法主體;

    3,接口的成員變量和成員方法隻能public(或預設不寫),效果一樣,都是public

    4,實作接口的類必須全部實作接口中的方法(父類的實作也算,一般有通過基類實作接口中個異性不大的方法來做為擴充卡的做法)

三,關鍵字:final

   1,可用于修飾:成員變量,非抽象類(不能與abstract同時出現),非抽象的成員方法,以及方法參數

   2,final方法:不能被子類的方法重寫,但可以被繼承;

   3,final類:表示該類不能被繼承,沒有子類;final類中的方法也無法被繼承.

   4,final變量:表示常量,隻能指派一次,指派後不能被修改.final變量必須定義初始化;

   5,final不能用于修飾構造方法;

   6,final參數:隻能使用該參數,不能修改該參數的值;

四,關鍵字:static

   1,可以修飾成員變量和成員方法,但不能修飾類以及構造方法;

   2,被static修飾的成員變量和成員方法獨立于該類的任何對象。也就是說,它不依賴類特定的執行個體,被類的所有執行個體共享

   3,static變量和static方法一般是通過類名直接通路,但也可以通過類的執行個體來通路(不推薦這種通路方式)

   4,static變量和static方法同樣适應java通路修飾符.用public修飾的static變量和static方法,在任何地方都可以通過類名直接來通路,但用private修飾的static變量和static方法,隻能在聲明的本類方法及靜态塊中通路,但不能用this通路,因為this屬于非靜态變量.

五,static和final同時使用

   1,static final用來修飾成員變量和成員方法,可簡單了解為“全局常量”!

   2,對于變量,表示一旦給值就不可修改,并且通過類名可以通路。

   3,對于方法,表示不可覆寫,并且可以通過類名直接通路。

來自 http://maxwee.javaeye.com