为什么这段代码输出的是 'thread:Thread..' 而不是 'runnable:Thread..'?

Why does this code output is 'thread:Thread..' ,not 'runnable:Thread..'?

我有一个简单的线程测试代码片段,它的伪代码是这样的new Thread(new Runnable(){...implement run method....}){...override run method...}.start();。我的问题是为什么这段代码输出是 'thread:Thread..' 而不是 'runnable:Thread..'?这是完整的代码。

public class ThreadTest {

    public static void main(String[] args) {
        new Thread(new Runnable(){//1 annonymous class implement Runnable interface
            @Override
            public void run() {
                try {
                    Thread.sleep(1000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }   
                System.out.println("runnable:" + Thread.currentThread().getName());
            }
        }){
            public void run() {//2 annonymous class extends Thread class 
                try {
                    Thread.sleep(1000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                System.out.println("thread:" + Thread.currentThread().getName());
            };
        }.start();
    }
}

默认情况下,Threadrun 方法将委托给您在构造函数中提供的 Runnable

但是,您覆盖了 Thread 的(匿名)子类中的 run 方法以执行其他操作。