抽象類和介面的修飾符

2021-08-07 19:15:08 字數 740 閱讀 4084

1、抽象類中的抽象方法(其前有abstract修飾)不能用private、static、synchronized、native訪問修飾符修飾。

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

2、介面是一種特殊的抽象類,介面中的方法全部是抽象方法(但其前的abstract可以省略),所以抽象類中的抽象方法不能用的訪問修飾符這裡也不能用。而且protected訪問修飾符也不能使用。

因為介面可以讓所有的類去 實現(非繼承) ,不只是其子類,但是要用public去修飾。介面可以去繼承乙個已有的介面。

介面中的變數預設是public static final 的,方法預設是public abstract 的。

抽象類與介面的修飾符

1 抽象類中的抽象方法 其前有abstract修飾 不能用private static synchronized native訪問修飾符修飾。原因如下 抽象方法沒有方法體,是用來被繼承的,所以不能用private修飾 static修飾的方法可以通過類名來訪問該方法 即該方法的方法體 抽象方法用sta...

修飾符 常量 抽象方法 抽象類

作用 避免類的命名衝突 同包中的類不能同名,類的全程為 包名.類名 包名常常有層次結構 包名建議 所有字母小寫 同包中的類可以直接訪問,不同包中的類不能直接訪問,若想訪問 先import宣告類再訪問 建議 類的全稱 不建議 public 公開的,任何類 private 私有的,本類 protect ...

C 修飾符 類修飾符和成員修飾符

c 修飾符之類修飾符 public internal partial abstract sealed static internal 本程式集內的成員可以訪問。partial 部分類,可以將乙個類分成幾部分寫在不同檔案中,最終編譯時將合併成乙個檔案,且各個部分不能分散在不同程式集中。c 修飾符之成員...