Анонимный внутренний класс используется в следующем сценарии:
1.) Для переопределения (подкласс), когда определение класса не используется, кроме текущего случая:
class A{
public void methodA() {
System.out.println("methodA");
}
}
class B{
A a = new A() {
public void methodA() {
System.out.println("anonymous methodA");
}
};
}
2 .) Для реализации интерфейса, когда реализация интерфейса требуется только для текущего случая:
interface interfaceA{
public void methodA();
}
class B{
interfaceA a = new interfaceA() {
public void methodA() {
System.out.println("anonymous methodA implementer");
}
};
}
3.) Аргумент Определенный Анонимный внутренний класс:
interface Foo {
void methodFoo();
}
class B{
void do(Foo f) { }
}
class A{
void methodA() {
B b = new B();
b.do(new Foo() {
public void methodFoo() {
System.out.println("methodFoo");
}
});
}
}