麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 開發 > Java > 正文

詳解Java8新特性之interface中的static方法和default方法

2024-07-14 08:41:53
字體:
來源:轉載
供稿:網友

為什么要單獨寫個Java8新特性,一個原因是我目前所在的公司用的是jdk8,并且框架中用了大量的Java8的新特性,如上篇文章寫到的stream方法進行過濾map集合。stream方法就是接口Collection中的default方法。所以準備專門寫寫關于java8新特性的文章,雖然現在10已經發布了。但還是要認真的去了解下新版本的變化。

static方法

java8中為接口新增了一項功能:定義一個或者更多個靜態方法。用法和普通的static方法一樣。

代碼示例

public interface InterfaceA {  /**   * 靜態方法   */  static void showStatic() {    System.out.println("InterfaceA++showStatic");  }}

測試

public class Test {  public static void main(String[] args) {    InterfaceA.show();  }}

結果

InterfaceA++showStatic

注意,實現接口的類或者子接口不會繼承接口中的靜態方法

default方法

在接口中,增加default方法, 是為了既有的成千上萬的Java類庫的類增加新的功能, 且不必對這些類重新進行設計。 比如, 只需在Collection接口中

增加default Stream stream(), 相應的Set和List接口以及它們的子類都包含此的方法, 不必為每個子類都重新copy這個方法。

代碼示例

實現單一接口,僅實現接口

public interface InterfaceA {  /**   * 靜態方法   */  static void showStatic() {    System.out.println("InterfaceA++showStatic");  }  /**   * 默認方法   */  default void showDefault() {    System.out.println("InterfaceA ++showDefault");  }}/**先只實現這個接口 * @author: curry * @Date: 2018/7/31 */public class InterfaceAImpl implements InterfaceA{}

測試

public class Test {  public static void main(String[] args) {    InterfaceA.showStatic();    new InterfaceAImpl().showDefault();  }}

結果

InterfaceA++showStatic
InterfaceA ++showDefault

如果接口中的默認方法不能滿足某個實現類需要,那么實現類可以覆蓋默認方法。

實現單一接口,重寫接口中的default方法

public class InterfaceAImpl implements InterfaceA{  /**   * 跟接口default方法一致,但不能再加default修飾符   */  @Override  public void showDefault(){    System.out.println("InterfaceAImpl++ defaultShow");  }}

測試

public class Test {  public static void main(String[] args) {    InterfaceA.showStatic();    new InterfaceAImpl().showDefault();  }}

結果

InterfaceA++showStatic
InterfaceAImpl++ defaultShow

實現多個接口,且接口中擁有相同的default方法和static方法

新創建個接口InterfaceB

/** * @author: curry * @Date: 2018/7/31 */public interface InterfaceB {  /**   * 靜態方法   */  static void showStatic() {    System.out.println("InterfaceB++showStatic");  }  /**   * 默認方法   */  default void showDefault() {    System.out.println("InterfaceB ++showDefault");  }}

修改實現類

public class InterfaceAImpl implements InterfaceA,InterfaceB{  @Override  public void showDefault() {    System.out.println("InterfaceAImpl ++ showDefault");  }

測試結果

InterfaceA++showStatic
InterfaceAImpl ++ showDefault

總結

看了接口中新增的這個新特性,感覺還是不錯的,內容也比較簡單。需要注意一點就是如果實現多個接口時,每個接口都有相同的default方法需要重寫該方法。

以上所述是小編給大家介紹的Java8新特性之interface中的static方法和default方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VeVb武林網網站的支持!


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 黄色片免费在线播放 | 国产成人av免费观看 | 亚洲午夜不卡 | 免费黄色小网站 | 欧美国产一区二区三区 | 欧美精品1区 | 最新中文字幕日本 | 免费淫视频 | 精品呦女| 免费香蕉成视频成人网 | 欧美无限资源 | 久久久久久中文字幕 | jizzyouxxxx | 亚洲免费视频大全 | 成人mm视频在线观看 | 欧美a∨一区二区三区久久黄 | 午夜在线视频一区二区三区 | 午夜视频中文字幕 | 一区二区久久电影 | 九九热精品视频在线播放 | 国产精品久久久久久久成人午夜 | 蜜桃网站在线观看 | 免费国产视频大全入口 | 欧美黄 片免费观看 | 久久久久.com | 免费国产之a视频 | 黄色影院一级片 | 日本一道aⅴ不卡免费播放 视屏一区 | 精品国产成人 | 红杏亚洲影院一区二区三区 | 九九精品在线观看视频 | 成人不卡在线观看 | 国产一区二区国产 | 性欧美大战久久久久久久免费观看 | 欧美人与性禽动交精品 | 黄色大片网站在线观看 | 青青草国产在线视频 | 亚洲午夜精选 | 欧美雌雄另类xxxxx | 在线中文字幕网站 | 中国老女人一级毛片视频 |