"An anonymous class require a zero-argument constructor." that's not true?
An anonymous class does not require a zero-argument constructor.
An anonymous class may specify an abstract base class as its base type.
An anonymous class may specify an interface as its base type.
An anonymous class may specify both an abstract class and interface as base types.