标签:
看别人的代码遇到Thread t1 = new Thread(){};,new一個线程,后面用大括号,里面还可以写方法,一般javase中创建线程只有两种方法呀,这种用法从来没见过呀~~~~经过查找资料终于理解了。。。。
??这是个匿名内部类,继承了Thread类,一般我们定义的类都是有名字的如 public class A extends Thread{},这个类的名字是A,它继承了Thread类,在{}中可以写一些方法,包括自定义的也包括重写父类。而 new Thread(){};这样的写法意思是有一个类,继承了Thread,因为这个类只用一次,因此不想给它起名字,所以就用这种匿名类的写法。当此匿名类也需要定义一些新的方法,或者重写父类的方法,就要在后面跟的大括号中完成。一般继承Thread类都需要改写的是run()方法。
??这里其实本质上用的是第一种方法。
??匿名内部类的优点是使代码变得简洁悦目。
标签:
原文地址:http://blog.csdn.net/a910626/article/details/45363453