黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

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

淺談Java接口修飾符

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

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


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

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 欧美v亚洲 | 黄色一级大片网站 | 国产成人精品一区二区免费 | 日韩精品成人a在线观看 | 国产剧情乱偷 | 最好看免费中文字幕2019 | 中文字幕99页 | 最近中文字幕2019国语7 | 国产亚洲欧洲 | 人人艹人人 | 黄色一级录象片 | 日本在线免费 | 成人午夜爽爽爽免费视频 | 国产香蕉一区二区在线观看 | 黄色美女网站视频 | 700av第一福利在线导航 | 窝窝午夜看片成人精品 | ass日本医生pics | 成视频年人黄网站免费视频 | 亚洲激情欧美 | 瑟瑟网站免费网站入口 | 在线毛片免费观看 | 国产精品久久久久久免费播放 | 全网免费在线播放视频入口 | 免费看色片| 激情综合五月 | 日本三级视频在线播放 | 亚洲一二四区性毛片1在线 亚洲一二三在线 | baoyu166.永久免费视频 | 国产一级毛片国产 | 涩涩网址 | 黄色a级毛片 | 成人激情视频网站 | 一二三四在线视频社区8 | 黄色片一级免费 | 怡红院视频在线 | 精品视频一区二区三区四区 | 国产97色在线 | 免费 | 天天爽天天 | 国产在线乱子伦一区二区 | 国产午夜精品理论片久久影视 |