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

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

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 超级乱淫伦短篇小说做车 | 国产私拍精品88福利视频 | 亚洲精品丝袜在线一区波多野结衣 | 亚洲欧美成人综合久久久 | 东北恋哥在线播放免费播放 | 国产欧美精品一区二区三区 | 九九精品视频一区二区三区 | 亚洲 欧美 国产 在线 日韩 | 亚洲国产成人久久精品影视 | 欧美一级高清片免费一级 | 国产精品福利短视在线播放频 | 久久婷婷五月综合色丁香花 | 成人免费视屏 | 青春娱乐国产分类精品二 | 果冻传媒mv在线观看入口免费 | 国产欧美成人免费观看 | 日本中文字幕一区二区有码在线 | 男人晚上适合偷偷看的污污 | 国产主播精品在线 | 小向美奈子av | 欧美黑人性猛交╳xx╳动态图 | 91久久国产露脸精品 | 色成人综合网 | 国产农村乱子伦精品视频 | 超兴奋朋友的中文字幕下 | 特黄特色大片免费视频大全 | 亚洲一区二区日韩欧美gif | 欧美一级欧美三级 | 国自产在线精品免费 | 1024香蕉视频| 国产欧美日韩免费一区二区 | 黄绝一级 | 秋霞午夜伦午夜高清福利片 | 欧美一区精品 | 无码AV毛片色欲欧洲美洲 | 国产精品久久久久久久久久久久久久 | 日本一区二区三区视频在线观看 | 国产精品不卡 | 亚洲国产免费 | 日本不卡在线视频高清免费 | 性色生活片在线观看 |