【总结】匿名内部类

1.匿名内部类概念

一个继承了类的子类的匿名对象 或者一个实现了接口的实现类的匿名对象。
开发中,最常用到的内部类就是匿名内部类了。以接口举例,当你使用一个接口时,似乎得做如下几步操作。
1、定义子类
2、重写接口中的方法
3、创建子类对象
4、调用重写后的方法

我们的目的,最终只是为了调用方法,那么能不能简化一下,把以上四步合成一步呢?匿名内部类就是做这样的快捷方式

2.条件

(1)匿名内部类必须继承一个父类或者实现一个父接口。
(2)函数式接口:就是一个有且仅有一个抽象方法,但是可以有多个默认方法的接口

3.实例

3.1.创建线程 - 继承Thread类,实现run方法

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

3.2 实现runnable接口,实现run方法

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

4.lambda简化

        Thread t1 = new Thread(() -> System.out.println(Thread.currentThread().getName() + "线程创建"));

        Runnable runnable = () -> System.out.println(Thread.currentThread().getName() + "线程创建");
        Thread t2 = new Thread(runnable);

posted @ 2021-01-12 11:18  mu_阿成  阅读(130)  评论(0)    收藏  举报
// 侧边栏目录 // https://blog-static.cnblogs.com/files/douzujun/marvin.nav.my1502.css