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

Java  匿名內(nèi)部類詳解及實例代碼

 更新時間:2017年02月28日 11:44:21   投稿:lqh  
這篇文章主要介紹了Java 匿名內(nèi)部類詳解及實例代碼的相關(guān)資料,需要的朋友可以參考下

Java  匿名內(nèi)部類詳解

匿名內(nèi)部類也就是沒有名字的內(nèi)部類

正因為沒有名字,所以匿名內(nèi)部類只能使用一次,它通常用來簡化代碼編寫

但使用匿名內(nèi)部類還有個前提條件:必須繼承一個父類或?qū)崿F(xiàn)一個接口

實例1:不使用匿名內(nèi)部類來實現(xiàn)抽象方法

abstract class Person {
  public abstract void eat();
}
 
class Child extends Person {
  public void eat() {
    System.out.println("eat something");
  }
}
 
public class Demo {
  public static void main(String[] args) {
    Person p = new Child();
    p.eat();
  }
}

運行結(jié)果:eat something

可以看到,我們用Child繼承了Person類,然后實現(xiàn)了Child的一個實例,將其向上轉(zhuǎn)型為Person類的引用

但是,如果此處的Child類只使用一次,那么將其編寫為獨立的一個類豈不是很麻煩?

這個時候就引入了匿名內(nèi)部類

實例2:匿名內(nèi)部類的基本實現(xiàn)

abstract class Person {
  public abstract void eat();
}
 
public class Demo {
  public static void main(String[] args) {
    Person p = new Person() {
      public void eat() {
        System.out.println("eat something");
      }
    };
    p.eat();
  }
}

運行結(jié)果:eat something

可以看到,我們直接將抽象類Person中的方法在大括號中實現(xiàn)了

這樣便可以省略一個類的書寫

并且,匿名內(nèi)部類還能用于接口上

實例3:在接口上使用匿名內(nèi)部類

interface Person
 {
  public void eat();
}
 
public class Demo
 {
  public static void main(String[]
 args) {
    Person
 p = new Person()
 {
      public void eat()
 {
        System.out.println("eat
 something");
      }
    };
    p.eat();
  }
}

運行結(jié)果:eat something

由上面的例子可以看出,只要一個類是抽象的或是一個接口,那么其子類中的方法都可以使用匿名內(nèi)部類來實現(xiàn)

最常用的情況就是在多線程的實現(xiàn)上,因為要實現(xiàn)多線程必須繼承Thread類或是繼承Runnable接口

實例4:Thread類的匿名內(nèi)部類實現(xiàn)

public class Demo
 {
  public static void main(String[]
 args) {
    Thread
 t = new Thread()
 {
      public void run()
 {
        for (int i
 = 1;
 i <= 5;
 i++) {
          System.out.print(i
 + "
 ");
        }
      }
    };
    t.start();
  }
}

運行結(jié)果:1 2 3 4 5

實例5:Runnable接口的匿名內(nèi)部類實現(xiàn)

public class Demo {
  public static void main(String[] args) {
    Runnable r = new Runnable() {
      public void run() {
        for (int i = 1; i <= 5; i++) {
          System.out.print(i + " ");
        }
      }
    };
    Thread t = new Thread(r);
    t.start();
  }
}

運行結(jié)果:1 2 3 4 5

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

相關(guān)文章

  • 徹底解決Spring mvc中時間的轉(zhuǎn)換和序列化等問題

    徹底解決Spring mvc中時間的轉(zhuǎn)換和序列化等問題

    這篇文章主要介紹了徹底解決Spring mvc中時間的轉(zhuǎn)換和序列化等問題,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-09-09
  • log4j2使用filter過濾日志方式

    log4j2使用filter過濾日志方式

    這篇文章主要介紹了log4j2使用filter過濾日志方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • SpringCloud?Feign?傳輸Date類型參數(shù)存在誤差的問題

    SpringCloud?Feign?傳輸Date類型參數(shù)存在誤差的問題

    這篇文章主要介紹了SpringCloud?Feign?傳輸Date類型參數(shù)存在誤差的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • SpringBoot?ApplicationContext接口深入分析

    SpringBoot?ApplicationContext接口深入分析

    ApplicationContext是Spring應(yīng)用程序中的中央接口,由于繼承了多個組件,使得ApplicationContext擁有了許多Spring的核心功能,如獲取bean組件,注冊監(jiān)聽事件,加載資源文件等
    2022-11-11
  • jmeter正則表達式提取器的用法與正則詳解

    jmeter正則表達式提取器的用法與正則詳解

    在使用Jmeter過程中,會經(jīng)常使用到正則表達式提取器提取器,下面這篇文章主要給大家介紹了關(guān)于jmeter正則表達式提取器的用法與正則的相關(guān)資料,需要的朋友可以參考下
    2022-07-07
  • Java IO文件后綴名過濾總結(jié)

    Java IO文件后綴名過濾總結(jié)

    本篇文章給大家詳細講述了Java IO文件后綴名過濾的相關(guān)知識點,以及實例代碼分享,有需要的朋友跟著小編一起學習下。
    2018-02-02
  • 使用Spring Boot集成FastDFS的示例代碼

    使用Spring Boot集成FastDFS的示例代碼

    本篇文章主要介紹了使用Spring Boot集成FastDFS的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-02-02
  • 如何使用mybatis-generator自動生成代碼

    如何使用mybatis-generator自動生成代碼

    這篇文章主要介紹了如何使用mybatis-generator自動生成代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-10-10
  • 23種設(shè)計模式(10)java組合模式

    23種設(shè)計模式(10)java組合模式

    這篇文章主要為大家詳細介紹了23種設(shè)計模式之java組合模式,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • 了解JAVA并發(fā)工具常用設(shè)計套路

    了解JAVA并發(fā)工具常用設(shè)計套路

    這篇文章主要介紹了了解JAVA并發(fā)工具常用設(shè)計套路,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,,需要的朋友可以參考下
    2019-06-06

最新評論

河池市| 手机| 盐源县| 平阴县| 长汀县| 香河县| 陇川县| 汉沽区| 乌审旗| 夹江县| 朝阳县| 上蔡县| 福州市| 沁阳市| 福州市| 玉门市| 太湖县| 大洼县| 新巴尔虎左旗| 永泰县| 遂平县| 沙洋县| 盐山县| 泰和县| 惠州市| 夏津县| 新营市| 常德市| 新源县| 武城县| 临汾市| 库车县| 永和县| 沐川县| 太湖县| 漾濞| 阳东县| 黔江区| 泽普县| 图木舒克市| 祁东县|