本帖最后由 张 涛 于 2012-9-23 07:14 编辑
一段代码:- Thread th1 = new Thread(){
- @Override
- public void run() {
- System.out.println("thread");
- }
- };
复制代码 上面这段代码是新起一个线程,用的是匿名内部类。
我不明白的是,这明明是new了一个Thread啊,怎么new的这个Thread就是Thread的子类了呢?
源码中Thread的构造方法的代码:- public Thread() {
- init(null, null, "Thread-" + nextThreadNum(), 0);
- }
复制代码 调用的init的代码:- private void init(ThreadGroup g, Runnable target, String name,
- long stackSize) {
- Thread parent = currentThread();
复制代码 下面还很长,就不贴了。这里倒是有个Thread,叫parent,但他获得的是当前线程,也不是新起的线程啊。
问题:
匿名内部类,怎么成为该类的子类了?这个用法很常见,但一直不懂。
|