Why declare an interface as abstract?

Where did you come across the chunk of code you have posted, any old java code base ?
This is what the JLS has to say :

9.1.1.1 abstract Interfaces:
Every interface is implicitly abstract. This modifier is obsolete and should not be used in new programs.

9.4 Abstract Method Declarations:
For compatibility with older versions of the Java platform, it is permitted but discouraged, as a matter of style, to redundantly specify the abstract modifier for methods declared in interfaces.


Interfaces and interface methods are implicitly abstract even if not declared as so. So there is no need to explicitly specify it.


Makes no difference - interfaces and interface methods are always abstract but you don't have to add the modifier (and interface methods are always public so you don't need the public modifier too).

From the JLS:

9.1.1.1 abstract Interfaces

Every interface is implicitly abstract. This modifier is obsolete and should not be used in new programs.


Typically, you don't declare the interface, or its methods, as abstract. They are implicitly.

The methods are also public, so you can skip that also. :-)


have a look at this post

https://stackoverflow.com/questions/4380796/what-is-public-abstract-interface-in-java/4381308#4381308

interface is %100 abstract class.

the keyword abstract is redundant here