黑马程序员技术交流社区
标题:
一个匿名内部类的问题
[打印本页]
作者:
Sevenette
时间:
2014-5-22 22:24
标题:
一个匿名内部类的问题
class ThreadTest
{
public static void main(String[] args)
{
new Thread(new Runnable()
{
public void run()
{
System.out.println("runnable run");
}
})
{
public void run()
{
System.out.println("subThread run");
}
}.start();
复制代码
看着略晕。。。
运行结果是subThread run
{:3_67:} 求大神讲解一下原因。。。
作者:
java木
时间:
2014-5-22 22:29
没什么疑问啊,就应该是这个结果啊
作者:
Sevenette
时间:
2014-5-22 22:38
java木 发表于 2014-5-22 22:29
没什么疑问啊,就应该是这个结果啊
结果能大概猜出来,但具体的过程不太明白
作者:
wangleixhlm
时间:
2014-5-22 23:20
应该是这样吧
public static void main(String[] args)
{
new Thread(new Runnable()
{
//Runnable对象的run()方法
public void run()
{
System.out.println("runnable run");
}
})
{
//Thread的run()方法
public void run()
{
System.out.println("subThread run");
}
}.start();
}
复制代码
作者:
流沙
时间:
2014-5-23 09:48
new Thread(new Runnable(){}) 这个是什么意思?
作者:
流沙
时间:
2014-5-23 10:33
我是菜鸟解释一下,望楼主能看明白,勿喷!!!
你new了一个Thread,往里传了一个匿名内部类对象,这个匿名内部类对象就是Runable类的子类,复写了run方法,这个时候你就new的是对象 .start();运行的就是runnable run了。 但是你后边又跟了一个{}就说明这还是一个匿名内部类。你又覆盖了一遍run 方法,所以最后运行的是
subThread run;
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2