黑马程序员技术交流社区

标题: 求助关于匿名内部类和多线程的问题 [打印本页]

作者: 最歌    时间: 2014-10-20 18:07
标题: 求助关于匿名内部类和多线程的问题
new Thread(new Runnable(){  //匿名
                        public void run(){
                                System.out.println("runnable run");       
                        }
                })
                {
                        public void run(){
                                System.out.println("subthread run");
                        }
                }.start();  

结果是 输出  :subthread run


按照匿名内部类的运行规则 能推出这个结果,但是参数中出现了Runnable接口的匿名内部类,有点晕了

希望理解的童鞋能给讲讲  谢谢
作者: 最歌    时间: 2014-10-20 18:10
这个问题有没有输出runnable run 的情况
作者: 最歌    时间: 2014-10-20 18:16
这个问题有没有输出runnable run 的情况
作者: wf111sxwf    时间: 2014-10-20 19:32
匿名内部类的前提是 该类继承了某个父类或者实现了某个接口,你这个new Thread是一个线程对象的子类对象,它其中定义了自己的run方法会覆盖父类中的 那个run方法所以就执行了子类自己的run方法。
作者: wf111sxwf    时间: 2014-10-20 19:37
想要执行runnable中的run方法的把 new Thread这个子类对象的run方法干掉你懂得~因为thread类中接收一个实现runnable接口的对象的构造函数中,源码中的 run方法中写的是r.run.
作者: wf111sxwf    时间: 2014-10-20 19:40
手机党解释不到位的请多谅解哈




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2