BINARY COMPATIBILITY
public
Interfaces
13.5.1
If
Super
is recompiled but not
Hyper
or
Test
, then running the new binary with
the existing binaries for
Hyper
and
Test
will produce the output:
Goodbye, cruel world!
This example demonstrates that the invocation in:
s.world();
in the method
main
is resolved, at compile time, to a symbolic reference to the
class containing the class method
world
, as though it had been written:
Hyper.world();
This is why the
world
method of
Hyper
rather than
Super
is invoked in this
example. Of course, recompiling all the classes to produce new binaries will allow
the output:
Goodbye, cruel earth!
to be produced.
13.4.24 Static Initializers
Adding, deleting, or changing a static initializer ( 8.5) of a class does not impact
pre existing binaries.
13.5 Evolution of Interfaces
This section describes the impact of changes to the declaration of an interface and
its members on pre existing binaries.
13.5.1
public
Interfaces
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 rec
ommended for widely distributed interfaces.
259
footer
Our partners:
PHP: Hypertext Preprocessor Best Web Hosting
Java Web Hosting
Inexpensive Web Hosting
Jsp Web Hosting
Cheapest Web Hosting
Jsp Hosting
Cheap Hosting
Visionwebhosting.net Business web hosting division of Web
Design Plus. All rights reserved