【JAVA筆記】final、abstrat、static彙總

1、abstract

1.1有關abstract

abstract;抽象類抽象方法,必須被繼承才能使用. public abstract double area();
不能用private、static、synchronized、native訪問修飾符修飾。原因如下:抽象方法沒有方法體,是用來被繼承的,所以不能用private修飾;static修飾的方法可以通過類名來訪問該方法(即該方法的方法體),抽象方法用static修飾沒有意義;使用synchronized關鍵字是爲該方法加一個鎖。。而如果該關鍵字修飾的方法是static方法。則使用的鎖就是class變量的鎖。如果是修飾類方法。則用this變量鎖。但是抽象類不能實例化對象,因爲該方法不是在該抽象類中實現的。是在其子類實現的。所以。鎖應該歸其子類所有。所以。抽象方法也就不能用synchronized關鍵字修飾了;native,這個東西本身就和abstract衝突,他們都是方法的聲明,只是一個吧方法實現移交給子類,另一個是移交給本地操作系統。如果同時出現,就相當於即把實現移交給子類,又把實現移交給本地操作系統,那到底誰來實現具體方法呢?

1.2抽象類和接口的區別(接口是特殊的抽象類)

抽象類中的方法可以有方法體,就是能實現方法的具體功能,但是接口中的方法不行。
抽象類中的成員變量可以是各種類型的,而接口中的成員變量只能是 public static final 類型的。
接口中不能含有靜態代碼塊以及靜態方法(用 static 修飾的方法),而抽象類是可以有靜態代碼塊和靜態方法。
一個類只能繼承一個抽象類,而一個類卻可以實現多個接口。

2、static

static:靜態成員,所有對象共享。非靜態變量不能夠被靜態方法引用。

3、final

final:最終類最終方法,不能被繼承。final修飾的變量不可變;final修飾的對象其屬性可以改變,但是final型的引用是不能被修改的~

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