-5

What is the difference b/w Inner class and anonymous Inner class? Could you please give some scenarios to use these inner classes?

1 Answers1

1

A local inner class consists of a class declared within a method, whereas an anonymous class is declared when an instance is created. So the anonymous class is created on the fly or during program execution. An anonymous class has no name declared for the class, which differs from the local inner class, which has a class name.

Example:

interface NamedInterface {
    public InnerClass() {}
    private foo() {}
    public baz() {}
    public bar() {}
}
 
class Main {
    public Main() {
       compareClasses();
    }

    public void compareClasses() {
         // local inner class declaration
         class InnerClass {
             public InnerClass() {}
             private foo() {}
             public baz() {}
             public bar() {}
         }
         InnerClass iCInstance = new InnerClass();

         // anonymous class declared and instantiated during execution
         NamedInterface anonymousClassInstance = new NamedInterface() {
             public InnerClass() {}
             private foo() {}
             public baz() {}
             public bar() {}
         }
    }
}
BrightIntelDusk
  • 4,577
  • 2
  • 25
  • 34