其实匿名内部类是要作为某个类或者接口实现类来完成初始化的,你这样子想嘛:你匿名内部类连类名都没有,那么你怎么才能通过new关键字产生你这个匿名内部类的对象呢,肯定是要借助父类或者父接口的引用来完成内部类的定义,先不说功能,你看我下面两个匿名内部类的定义:
new Thread(){
public void run(){
while(a<30)
a++;
}
}.start();
new Thread(new Runnable(){
public void run(){
while(a<30){
a++;
}
}
}).start();
这是两个能运行的线程哦。编译也不会报错的
我定义了两个内部类,第一个是继承自Thread类,另外一个是实现Runnable接口的,如果你不重写Runnable接口中的run方法,那么会提示报错,证明了我内部类实现接口完全是按照类实现接口的原则来声明的。 |