问题来源于ziyu0971 同学的帖子:http://bbs.itheima.com/thread-169016-1-1.html,首先从结构上来说是不推荐这种写法的,可读性差,不利于交流,这段代码其实是看你对匿名类中子类重写父类方法的掌握。
首先代码先format下:
- new Thread(new Runnable() { // 匿名
- public void run() {
- System.out.println("runnable run");
- }
- }) {
- public void run() {
- System.out.println("subthread run");
- }
- }.start(); // 结果:subthread run
复制代码
这段代码其实就是启动了一个继承了Thread的匿名类线程,然后重写了run方法,在run方法里面打印了subthread run,那么肯定是调用是subthread的run方法,不是调用Thread里面的run方法,也就不会调用new Runnable子类的run方法了,就是这样。
|
|