搬一下以前寫的
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連用
新聞熱點
疑難解答