13.4. Evolution of Classes
This section describes the effects of changes to the declaration of a class and its members and constructors on pre-existing binaries.
13.4.1. abstract Classes
If a class that was not declared abstract
is changed to be declared abstract
, then pre-existing binaries that attempt to create new instances of that class will throw either an InstantiationError
at link time, or (if a reflective method is used) an InstantiationException
at run time; such a change is therefore not recommended for widely distributed classes.
Changing a class that is declared abstract
to no longer be declared abstract
does not break compatibility with pre-existing binaries.
13.4.2. final Classes
If a class that was not declared final
is changed ...
Get The Java® Language Specification, Java SE 7 Edition, Fourth Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.