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

首頁 > 編程 > Java > 正文

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

2019-11-26 15:56:12
字體:
來源:轉載
供稿:網友

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

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

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

實例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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 黄色特级| 成人宗合网 | 黑人一级片视频 | 成码无人av片在线观看网站 | 国产瑟瑟视频 | 久久这| 成人爽a毛片免费啪啪红桃视频 | sm高h视频| 中文字幕视频在线播放 | 久久久www成人免费精品 | 中文字幕 亚洲一区 | 久久久成人精品视频 | 97香蕉超级碰碰久久免费软件 | 免费国产成人高清在线看软件 | 午夜av男人的天堂 | www.com超碰| 国产精品久久久久久久亚洲按摩 | chinese中国真实乱对白 | 国产成人精品日本亚洲语音 | 国产日韩一区二区三区在线观看 | 久在线观看福利视频69 | 欧美精品成人一区二区三区四区 | 在线成人精品视频 | 成人免费自拍视频 | 91免费视频版 | 久久99精品久久久久久秒播放器 | 久久精品久久精品国产大片 | av在线1 | 亚洲视频精品在线 | 午夜视| 91午夜在线观看 | 深夜免费视频 | 久久久久久久久久综合 | 久久999久久| 一本色道久久综合亚洲精品小说 | 欧美一级免费视频 | 免费a级毛片大学生免费观看 | 国产免费一级大片 | 黄污在线看 | 国产亚洲综合一区二区 | 毛片视频免费播放 |