抽象類與介面的修飾符

2021-07-22 01:11:00 字數 676 閱讀 9675

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

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

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

ps:對於所有的類,abstract不能與

final

同時修飾乙個類

抽象類和介面的修飾符

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

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

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

java抽象類與介面的區別抽象類與介面的特性是什麼

介面和抽象類的概念不一樣。介面是對動作的抽象,抽象類是對根源的抽象。抽象類表示的是個物件,什麼物件。介面表示的是物件的功能,能做什麼。舉個例子 男人 物件 和女人 物件 這兩個類 物件 他們可以抽象為人。公貓和母貓可以抽象為貓。人可以吃飯,可以睡覺,貓呢也可以吃飯和睡覺,那麼這個 吃飯 睡覺 就是某...