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

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

淺談Java接口修飾符

更新時間:2020-10-28 17:49:28 來源:動力節(jié)點 瀏覽1852次

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


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

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

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

  (3)接口不涉及和任何具體實例相關(guān)的細節(jié),因此接口沒有構(gòu)造方法,不能被實例化,沒有實例變量,只有靜態(tài)(static)變量;

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


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


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

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

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

  1.創(chuàng)建一個java 接口:

  public interface TestInterface {

  void say();

  }


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

  public abstract interface TestInterface {

  void say();

  }

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


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

  interface TestInterface {

  void say();

  }

  不報錯;同包下的實現(xiàn)類運行正常;異包下的實現(xiàn)類通不過編譯。由此可知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();

  }


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

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


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

免費課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 欧美一级精品高清在线观看 | 色综合日本 | 欧美无吗| 中国女人内谢59xxxxx | 亚洲综合精品一区 | 国产图片亚洲精品一区 | 欧美成人午夜在线全部免费 | 在线亚洲精品国产波多野结衣 | 一级片免费视频 | 在线播放真实国产乱子伦 | 波多野结衣xxxx性精品 | 96国产xxxx| 久久精品综合 | 99精品免费久久久久久久久日本 | 四虎影片国产精品8848 | 国产精品一国产精品免费 | 亚洲视频在线观看免费 | 国内偷自视频区视频综合 | 波多野野结衣1区二区 | 看黄色免费网站 | 四虎影视在线影院4hutv | 久久综合热88 | 99秒拍福利大尺度视频 | 一级aa毛片| 国内精品自在自线视频香蕉 | 米奇影视7777| 亚洲免费网站在线观看 | 欧美日韩免费在线 | 色综合色狠狠天天综合色hd | 开心激情五月婷婷 | 国产精品免费视频一区一 | 国产99久9在线 | 亚洲国产精久久小蝌蚪 | 亚洲婷婷在线视频 | 亚洲精品色婷婷在线影院麻豆 | 狠狠狠地在啪线香蕉 | 东京干手机福利视频 | 午夜小视频网站 | 久久996re热这里有精品 | 成人短视频在线观看 | 久草热久草在线 |