一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - java中的匿名內部類詳細總結

java中的匿名內部類詳細總結

2019-10-17 10:22java技術網 Java教程

以下是對java中的匿名內部類進行了詳細的總結介紹,需要的朋友可以過來參考下,希望對大家有所幫助

匿名內部類也就是沒有名字的內部類

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

但使用匿名內部類還有個前提條件:必須繼承一個父類或實現一個接口

實例1:不使用匿名內部類來實現抽象方法

復制代碼代碼如下:

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(); 
    } 
}


運行結果:eat something

 

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

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

這個時候就引入了匿名內部類

實例2:匿名內部類的基本實現

復制代碼代碼如下:

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(); 
    } 
}


運行結果:eat something

 

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

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

并且,匿名內部類還能用于接口上

實例3:在接口上使用匿名內部類

復制代碼代碼如下:

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(); 
    } 
}


運行結果:eat something
由上面的例子可以看出,只要一個類是抽象的或是一個接口,那么其子類中的方法都可以使用匿名內部類來實現

 

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

實例4:Thread類的匿名內部類實現

復制代碼代碼如下:

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(); 
    } 


運行結果:1 2 3 4 5

 

實例5:Runnable接口的匿名內部類實現

復制代碼代碼如下:

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(); 
    } 


運行結果:1 2 3 4 5

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 精品综合一区二区三区 | 香蕉久久久久久狠狠色 | 下雨天小说词枝 | 草草剧场| 国产高清视频免费最新在线 | www.日日操| 欧美一二区视频 | 亚洲国产在线播放在线 | 色吊丝每日永久访问网站 | 日本伊人久久 | 欧美国产日韩在线 | 国产自产一区c | 日本花季传媒2020旧版安卓 | 欧美日韩综合一区 | 乌克兰一级毛片 | 亚洲看片lutube在线入口 | 久久青草免费91线频观看站街 | 性姿势女人嗷嗷叫图片 | 国产日韩欧美色视频色在线观看 | xxx95日本老师xxx学生 | 日韩资源 | 91亚色视频在线观看 | 午夜AV亚洲一码二中文字幕青青 | 处女摘花视频 | 91制片厂制作果冻传媒123 | 国产福利不卡一区二区三区 | 女仆掀起蕾丝裙被打屁股作文 | 国产小情侣自拍 | 色老妇 | 人人精品久久 | 国产精品亚洲va在线观看 | 天天做天天爽天天谢 | 美女被的在线网站91 | 精品国产线拍大陆久久尤物 | 美女gif跪趴式抽搐动态图 | 免费观看欧美性一级 | 欧美一级裸片 | 精品AV亚洲乱码一区二区 | 高跟丝袜人妖sissy露出调教 | xxoo做爰猛烈动态 | 亚洲国产综合另类视频 |