abstract的方法是否可同時是static,是否可同時是native,是否可同時是synchronized?

 1、abstract與static

     (what)

     abstract:用來聲明抽象方法,抽象方法沒有方法體,不能被直接調用,必須在子類overriding後才能使用

     static:用來聲明靜態方法,靜態方法可以被類及其對象調用

     (how)

     static與abstract不能同時使用

     (why)

      用static聲明方法表明這個方法在不生成類的實例時可直接被類調用,而abstract方法不能被調用,兩者矛盾。

2、abstract與native

     (what)

     native:用來聲明本地方法,該方法的實現由非java 語言實現,比如C。一般用於java與外環境交互,或與操作系統交互

     (how)

      native 可以與所有其它的java 標識符連用,但是abstract除外。     

      (why)

      因爲native 暗示這些方法是有實現體的,只不過這些實現體

      是非java 的,但是abstract卻顯然的指明這些方法無實現體。

3、abstract與synchronized

      (what)

      synchronized:用於防止多個線程同時調用一個對象的該方法,與static連用可防止多個線程同時調用一個類的該方法

      (how)

      abstract與synchronized不能同時使用

      (why)

       從synchronized的功能也可以看出,用synchronized的前提是該方法可以被直接調用,顯然和abstract連用

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