大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 淺談Java接口修飾符

淺談Java接口修飾符

更新時間:2020-10-28 17:49:28 來源:動力節點 瀏覽1814次

  在Java中,我們用interface關鍵字來聲明一個接口,Java接口修飾符通俗點來說,就是用來修飾interface關鍵字的。


  Java接口本身默認是abstract的;可以是public的,也可以是friendly的,但不可以是private 的,不可以是protected的(否則通不過編譯)。

  1)接口用于描述系統對外提供的所有服務,因此接口中的成員常量和方法都必須是公開(public)類型的,確保外部使用者能訪問它們;

  (2)接口僅僅描述系統能做什么,但不指明如何去做,所以接口中的方法都是抽象(abstract)方法;

  (3)接口不涉及和任何具體實例相關的細節,因此接口沒有構造方法,不能被實例化,沒有實例變量,只有靜態(static)變量;

  (4)接口的中的變量是所有實現類共有的,既然共有,肯定是不變的東西,因為變化的東西也不能夠算共有。所以變量是不可變(final)類型,也就是常量了。


  (5) 接口中不可以定義變量?如果接口可以定義變量,但是接口中的方法又都是抽象的,在接口中無法通過行為來修改屬性。有的人會說了,沒有關系,可以通過 實現接口的對象的行為來修改接口中的屬性。這當然沒有問題,但是考慮這樣的情況。如果接口 A 中有一個public 訪問權限的靜態變量 a。按照 Java 的語義,我們可以不通過實現接口的對象來訪問變量 a,通過 A.a = xxx; 就可以改變接口中的變量 a 的值了。正如抽象類中是可以這樣做的,那么實現接口 A 的所有對象也都會自動擁有這一改變后的 a 的值了,也就是說一個地方改變了 a,所有這些對象中 a 的值也都跟著變了。這和抽象類有什么區別呢,怎么體現接口更高的抽象級別呢,怎么體現接口提供的統一的協議呢,那還要接口這種抽象來做什么呢?所以接口中 不能出現變量,如果有變量,就和接口提供的統一的抽象這種思想是抵觸的。所以接口中的屬性必然是常量,只能讀不能改,這樣才能為實現接口的對象提供一個統 一的屬性。


  通俗的講,你認為是要變化的東西,就放在你自己的實現中,不能放在接口中去,接口只是對一類事物的屬性和行為更高層次的抽象。對修改關閉,對擴展(不同的實現 implements)開放,接口是對開閉原則的一種體現。

  所以:**接口的方法默認是public abstract;

  接口中不可以定義變量即只能定義常量(加上final修飾就會變成常量)。所以接口的屬性默認是public static final 常量,且必須賦初值。

  1.創建一個java 接口:

  public interface TestInterface {

  void say();

  }


  2.為這個接口添加一個abstract 修飾符

  public abstract interface TestInterface {

  void say();

  }

  結果一切正常,它的實現類運行毫不影響。由此可知java接口默認就是abstract的。


  3、去掉這個接口的public 修飾符

  interface TestInterface {

  void say();

  }

  不報錯;同包下的實現類運行正常;異包下的實現類通不過編譯。由此可知java接口本身可以是friendly的(但不可以是private 和protected 的,這和類的聲明是一致的)。


  4、為這個接口里的一個方法添加private 修飾符

  public interface TestInterface {

  private void say();

  }

  通不過編譯。由此可知java接口里的方法不可以是private 的。


  5、為這個接口里的一個方法添加protected 修飾符

  public interface TestInterface {

  protected void say();

  }

  通不過編譯。由此可知java接口里的方法不可以是protected 的。


  6、為這個接口里的一個方法添加abstract 修飾符

  public interface TestInterface {

  abstract void say();

  }


  一切正常,它的實現類運行毫不影響。由此可知java接口里的方法默認就是abstract的。

  總的來說,Java接口修飾符除了用來修飾interface關鍵字,還可以判斷Java接口的默認方法。了解了Java接口修飾符,是不是還有更多的Java接口的問題亟需解決呢?快來本站的Java接口教程里尋找答案吧!


提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 五月天狠狠干 | 亚洲国产精品综合久久久 | 99re热久久资源最新获取 | 夜夜爽夜夜 | 欧美在线一级精品 | 国产精品免费视频一区二区三区 | 黄色网址在线免费 | 久久成人精品免费播放 | 日本高清在线一区二区三区 | 性欧美高清久久久久久久 | 久久综合九色综合97婷婷女人 | 中文精品久久久久国产网址 | 一级女性全黄生活片免费 | 免费的毛片网站 | 日韩国产午夜一区二区三区 | 成人爱爱爱欧美日本视频 | 奇米久草 | 男女精品视频 | 99久久精品费精品国产一区二区 | 国产欧美久久久精品 | 久久午夜影院 | 九月婷婷亚洲综合在线 | 亚洲伊人tv综合网色 | 国产精品伦理一区二区三区 | 亚洲香蕉一区二区三区在线观看 | 久国产精品久久精品国产四虎 | 在线免费黄色网址 | 成人综合婷婷国产精品久久免费 | 久草在线这里只有精品 | 亚洲精品福利一区二区三区 | 日韩dv| 99精品国产兔费观看66 | 久久精品美女视频 | 国产v欧美v日韩在线观看 | 亚洲国产精品yw在线观看 | 亚洲一区二区三区精品国产 | 欧美成人一区二免费视频 | 五月天婷婷在线视频国产在线 | 国产精品二 | 毛片网站在线 | 天天爆操 |