This section describes the impact of changes to the declaration of an interface and its members on pre-existing binaries.
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.
Changes to the interface hierarchy cause errors in the same way that changes to the class hierarchy do, as described in §13.4.4. In particular, ...