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

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

淺談Java接口修飾符

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

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


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

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 国产精品久久久久激情影院 | 欧美第一夜 | 精品一区一区三区新区乱码 | 免费特黄一级欧美大片在线看 | 黄色免费在线视频 | 一个人看的免费视频www中国 | 国产丶欧美丶日韩丶不卡影视 | 久在线 | 欧美成人精品一区二三区在线观看 | 国产成人乱码一区二区三区 | 国产成人在线视频播放 | 羞羞视频免费在线观看 | 成人三级网址 | 天天综合天天 | www.成人av.com| 日本韩国高清 | 丁香六月综合 | 欧美性猛交xxxxx免费看 | 黄免费在线观看 | 黄色爱爱网站 | 天天摸日日干 | 午夜高清 | 人人舔人人插 | 91全国探花精品正在播放 | 在线天堂资源www中文在线 | 亚洲一区精品视频在线 | 国产午夜一级鲁丝片 | bl高h各种play浪荡受np | 日日干天天插 | 黄色一及毛片 | 国产精视频 | 日韩a级毛片免费视频 | 亚洲福利影院 | 自拍偷拍 欧美日韩 | 黄色一级播放 | 成人在线视频免费观看 | 欧美亚洲中日韩中文字幕在线 | 黑人操日本人视频 | 国产成人一区二区三区影院免费 | 精品一区二区在线欧美日韩 | 男女做爽爽视频免费观看 |