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

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

淺談Java接口修飾符

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

  在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接口教程里尋找答案吧!


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

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 玖玖玖精品视频免费播放 | 日本免费黄色小视频 | 久久久国产99久久国产一 | 日韩欧美一卡二区 | 男人猛躁女人成人免费视频 | 成人影院在线观看kkk4444 | 亚洲综合视频网 | 神马影院我不卡在线观看 | 香蕉亚洲欧洲在线一区 | 亚洲天堂久久 | 日本免费不卡一区 | 91视频一区 | 国产成人综合亚洲一区 | 国产综合色在线视频区 | 精品一区二区三区色花堂 | 精品久久久久久亚洲精品 | 免费一看一级欧美 | 狠狠综合久久久久尤物丿 | 国产高清不卡一区二区三区 | 99j久久精品久久久久久 | 成人免费一级毛片在线播放视频 | 日韩欧美在线一级一中文字暮 | 国产伦精品一区二区三区免费观看 | 午夜国产精品福利在线观看 | 亚洲精品一级一区二区三区 | 伊人国产视频 | 成人免费动作大片黄在线 | 国产精品久久久久久久久久久威 | 香蕉人人超人人超免费看视频 | 欧美精品一区二区三区在线播放 | 天天干天天爽天天射 | 国产在线伊人 | 国产福利午夜 | 国产成人午夜性视频影院 | 久久久久激情免费观看 | 日韩欧美日本 | 999精品在线视频 | 亚洲国产精品a一区 | 91尤物视频在线观看 | 久久精品成人免费网站 | 久草在线首页 |