内部类就是在一个类中再声明一个类;匿名类是在一个类的子类的类体创建一个子类对象。而匿名类要想使用必然是在某个类中直接使用匿名类创建对象的,所以匿名类也一定是内部类。这样说不太清楚,给你用代码举个例子吧:
class A
{
int a;
class B
{
int b;
}
}其中B就是A的内部类。
class A
{
int a;
void s(C c){}
}
class B
{
A aa=new A();
aa.s(new C()
{
匿名类的类体 //这段代码就是C的一个子类(匿名类)创建的对象
});
}s括号中的参数就是一个匿名类的对象