匿名内部类 | 用线程的创建方式解释匿名内部类

匿名内部类 anonymous inner class

匿名内部类匿的是什么?
匿的是类名,匿的是接口Runnable的实现类Thread的类名。

不用再重新创建一个类了,但是因为我没有类名,就用我爸爸(父类或者父接口)的名字代替,这便是格式newThread(){}的由来。这就是匿名内部类。

参考文章:java匿名启动线程_使用匿名内部类:来创建线程的两种方式

技巧:使用idea作为IDE的话可以通过快捷键实现匿名内部类和lambda表达式的互转在这里插入图片描述

package com.example.anonymousInnerClass;

/**
 * 匿名内部类的使用
 * 以线程的创建为例
 */
public class TestAnonymous {

    public static void main(String[] args) {

        // 没有类名,直接拿父类或父接口当类名??

/*      匿名内部类匿的是什么?
        匿的是类名,匿的是接口A的实现类B的类名。
        不用再重新创建一个类了,但是因为我没有类名,就用我爸爸(父类或者父接口)的名字代替,这便是格式newA(){}的由来。这就是匿名内部类。*/

        new Thread(new Runnable() {
            @Override
            public void run() {
                System.out.println("---");
            }
        }).start();

        // replace with lambda
        new Thread(() -> System.out.println("---")).start();

        // expand lambda body to {...} 展开
        new Thread(() -> {
            System.out.println("---");
        }).start();


        // replace lambda with anonymous class
        new Thread(new Runnable() {
            @Override
            public void run() {
                System.out.println("---");
            }
        }).start();
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值