所谓匿名内部类就是没有名字并且是在类里面的一个类,还要进行实例化,要想实例化的话,首先你要有这个类,如果没有这个类的话,你怎么实例化呢,其实匿名内部类它只是把它的实例化,和所实现的代码都写在一起了,如果不继承一个抽象类或者接口的话,连类都没有的,它怎么实例化啊!比如:- public class DeathLock{
- public static void main(String[] args) {
- final Object lock1 = new Object();
- final Object lock2 = new Object();
- new Thread() {
- public void run() {
- synchronized (lock1) {
- System.out.println(Thread.currentThread().getName() + ":1");
- synchronized (lock2) {
- System.out.println(Thread.currentThread().getName() + ":2");
- }
- }
- };
- }.start();
- new Thread() {
- public void run() {
- synchronized (lock2) {
- System.out.println(Thread.currentThread().getName() + ":3");
- synchronized (lock1) {
- System.out.println(Thread.currentThread().getName() + ":4");
- }
- }
- };
- }.start();
- }
- }
复制代码
正因为有Thread这个类所以它才能够实例化! |