最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時(shí)間:2018年08月01日 11:17:09   作者:陽(yáng)光溫暖  
這篇文章主要介紹了Java8新特性之interface中的static方法和default方法,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

為什么要單獨(dú)寫(xiě)個(gè)Java8新特性,一個(gè)原因是我目前所在的公司用的是jdk8,并且框架中用了大量的Java8的新特性,如上篇文章寫(xiě)到的stream方法進(jìn)行過(guò)濾map集合。stream方法就是接口Collection中的default方法。所以準(zhǔn)備專(zhuān)門(mén)寫(xiě)寫(xiě)關(guān)于java8新特性的文章,雖然現(xiàn)在10已經(jīng)發(fā)布了。但還是要認(rèn)真的去了解下新版本的變化。

static方法

java8中為接口新增了一項(xiàng)功能:定義一個(gè)或者更多個(gè)靜態(tài)方法。用法和普通的static方法一樣。

代碼示例

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

測(cè)試

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

結(jié)果

InterfaceA++showStatic

注意,實(shí)現(xiàn)接口的類(lèi)或者子接口不會(huì)繼承接口中的靜態(tài)方法

default方法

在接口中,增加default方法, 是為了既有的成千上萬(wàn)的Java類(lèi)庫(kù)的類(lèi)增加新的功能, 且不必對(duì)這些類(lèi)重新進(jìn)行設(shè)計(jì)。 比如, 只需在Collection接口中

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

代碼示例

實(shí)現(xiàn)單一接口,僅實(shí)現(xiàn)接口

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

測(cè)試

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

結(jié)果

InterfaceA++showStatic
InterfaceA ++showDefault

如果接口中的默認(rèn)方法不能滿足某個(gè)實(shí)現(xiàn)類(lèi)需要,那么實(shí)現(xiàn)類(lèi)可以覆蓋默認(rèn)方法。

實(shí)現(xiàn)單一接口,重寫(xiě)接口中的default方法

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

測(cè)試

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

結(jié)果

InterfaceA++showStatic
InterfaceAImpl++ defaultShow

實(shí)現(xiàn)多個(gè)接口,且接口中擁有相同的default方法和static方法

新創(chuàng)建個(gè)接口InterfaceB

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

修改實(shí)現(xiàn)類(lèi)

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

測(cè)試結(jié)果

InterfaceA++showStatic
InterfaceAImpl ++ showDefault

總結(jié)

看了接口中新增的這個(gè)新特性,感覺(jué)還是不錯(cuò)的,內(nèi)容也比較簡(jiǎn)單。需要注意一點(diǎn)就是如果實(shí)現(xiàn)多個(gè)接口時(shí),每個(gè)接口都有相同的default方法需要重寫(xiě)該方法。

以上所述是小編給大家介紹的Java8新特性之interface中的static方法和default方法,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

  • Java 如何優(yōu)雅的拷貝對(duì)象屬性

    Java 如何優(yōu)雅的拷貝對(duì)象屬性

    這篇文章主要介紹了Java 如何優(yōu)雅的拷貝對(duì)象屬性,幫助大家更好的理解和學(xué)習(xí)Java,感興趣的朋友可以了解下
    2020-11-11
  • 八種Java中的基本數(shù)據(jù)類(lèi)型詳解

    八種Java中的基本數(shù)據(jù)類(lèi)型詳解

    在Java編程中,基本數(shù)據(jù)類(lèi)型是必不可少的一部分,對(duì)于初學(xué)者而言,理解這些基本數(shù)據(jù)類(lèi)型是非常重要的,下面我們就來(lái)學(xué)習(xí)一下Java中的八種基本數(shù)據(jù)類(lèi)型,以及它們的使用方法吧
    2023-08-08
  • java中throws與try...catch的區(qū)別點(diǎn)

    java中throws與try...catch的區(qū)別點(diǎn)

    在本篇文章里小編給大家整理了一篇關(guān)于java中throws與try...catch的區(qū)別點(diǎn)的內(nèi)容,需要的朋友們跟著學(xué)習(xí)下。
    2020-02-02
  • Java 抽象類(lèi)定義與方法實(shí)例詳解

    Java 抽象類(lèi)定義與方法實(shí)例詳解

    這篇文章主要介紹了java 抽象類(lèi)與接口的區(qū)別介紹的相關(guān)資料,需要的朋友可以參考下...
    2017-04-04
  • JAVA中對(duì)List進(jìn)行查詢(xún)

    JAVA中對(duì)List進(jìn)行查詢(xún)

    下面小編就為大家?guī)?lái)一篇在java List中進(jìn)行模糊查詢(xún)的實(shí)現(xiàn)方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2021-08-08
  • Java實(shí)現(xiàn)的矩陣乘法示例

    Java實(shí)現(xiàn)的矩陣乘法示例

    這篇文章主要介紹了Java實(shí)現(xiàn)的矩陣乘法,簡(jiǎn)單描述了矩陣乘法的原理,并結(jié)合實(shí)例形式分析了java實(shí)現(xiàn)矩陣乘法的相關(guān)操作技巧,需要的朋友可以參考下
    2019-03-03
  • Java如何使用HTTPclient訪問(wèn)url獲得數(shù)據(jù)

    Java如何使用HTTPclient訪問(wèn)url獲得數(shù)據(jù)

    這篇文章主要介紹了Java使用HTTPclient訪問(wèn)url獲得數(shù)據(jù)的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • Java8中的LocalDateTime和Date一些時(shí)間操作方法

    Java8中的LocalDateTime和Date一些時(shí)間操作方法

    這篇文章主要介紹了Java8中的LocalDateTime和Date一些時(shí)間操作方法,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-04-04
  • SpringBoot集成selenium實(shí)現(xiàn)自動(dòng)化測(cè)試的代碼工程

    SpringBoot集成selenium實(shí)現(xiàn)自動(dòng)化測(cè)試的代碼工程

    Selenium?是支持web?瀏覽器自動(dòng)化的一系列工具和[庫(kù)]?它提供了擴(kuò)展來(lái)模擬用戶(hù)與瀏覽器的交互,用于擴(kuò)展瀏覽器分配的分發(fā),本文給大家介紹了SpringBoot集成selenium實(shí)現(xiàn)自動(dòng)化測(cè)試的代碼工程,需要的朋友可以參考下
    2024-08-08
  • Java通過(guò)stmp協(xié)議發(fā)送郵件

    Java通過(guò)stmp協(xié)議發(fā)送郵件

    這篇文章主要為大家詳細(xì)介紹了Java通過(guò)stmp協(xié)議發(fā)送郵件,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-02-02

最新評(píng)論

平南县| 温宿县| 凤凰县| 玉林市| 仁怀市| 宾阳县| 黄大仙区| 延川县| 枣庄市| 大英县| 永和县| 盘锦市| 龙岩市| 大余县| 渭源县| 九龙城区| 上高县| 文化| 平阴县| 奉贤区| 阿巴嘎旗| 泗水县| 南丹县| 垫江县| 赣州市| 鄂温| 铜山县| 英吉沙县| 城口县| 长兴县| 定边县| 卫辉市| 济宁市| 高清| 疏勒县| 邵阳市| 中宁县| 韶关市| 乌审旗| 龙南县| 双牌县|