Changing an interface that is not declared public
to be declared public
does not
break compatibility with pre-existing binaries.
If an interface that is declared public
is changed to not be declared public
, then an IllegalAccessError
is thrown if a pre-existing binary is linked that needs but no longer has access to the interface type, so such a change is not recommended for widely distributed interfaces.