java中抽象的(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與外環境交互,或與操作系統交互。 
參考:java中 本地方法 Native Method

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

why 
因為 native 暗示這些方法是有實現體的,只不過這些實現體是非java 的,但是abstract卻顯然的指明這些方法無實現體。

3、abstract與synchronized

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

how 
abstract與synchronized不能同時使用

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM