As far as I know the differences between regular class and anonymous class are:
- Anonymous class can't implement multiple interfaces whereas regular class can.
- Anonymous class can't extend class and implement interface at the same time whereas regular class can.
- Anonymous class doesn't have a name while regular class has.
- Anonymous class can't define a constructor because anonymous class doesn't have a name whereas regular class can.
Is there a reason why these rules are implemented in anonymous class?
- static fields of anonymous class must be constant.
- an interface can't be a member of anonymous class.
- static block/initializer can't be used in anonymous class.