同时使用两种方法创建线程疑问

来源:3-2 使用两种方法创建

水桶一号

2019-09-16

public static void main(String[] args){
new Thread(new Runnable() {
@Override
public void run() {
System.out.println(“我来自Runnable”);
}
}){
@Override
public void run() {
System.out.println(“我来自Thread”);
}
}.start();
}
以上代码中的new Runnable() {
@Override
public void run() {
System.out.println(“我来自Runnable”);
}
},Runnable是一个接口,在此处为什么可以new?难道是此处java自动通过动态代理生成实例了吗?

写回答

1回答

悟空

2019-09-16

这是Java的匿名内部类写法。实质上是使用匿名接口来实现匿名内部类的, 匿名接口这样写是会自动生成一个实现了该接口的匿名类。

1
5
RCS2019
回复
duobao666
你好,我理解是“子类构造方法的第一条语句,都是隐含地添加super()”,而不是“覆写父类的方法,都会自动添加super”。 望指正。
2019-11-04
共5条回复

线程八大核心+Java并发原理及企业级并发解决方案

完整的并发知识网络+丰富的工作内容分享+50余道并发高频面试题

2512 学习 · 939 问题

查看课程