-2

Comparator is a interface in java then how is it that it allows new Comparator() and overrides compare method? Are there any other classes/interfaces also like that? Please help its very confusing

leppie
  • 112,162
  • 17
  • 191
  • 293
apoorva
  • 195
  • 1
  • 2
  • 13

1 Answers1

1

You cannot do Comparator x = new Comparator();

What you can do is

   Comparator x = new Comparator(){ 
       // some implementation code here
   };

That is something else (it includes the definition of an anonymous subclass of Comparator). It is more or less just a shorthand for declaring a new class that implements Comparator and making an instance of it and the same time.

And, yes, you can do that with all interfaces or non-final classes (don't need to be abstract).

Thilo
  • 250,062
  • 96
  • 490
  • 643