Binary Compatibility: vtable entries for final methods
David Daney
ddaney@avtrex.com
Thu May 13 16:37:00 GMT 2004
Andrew Haley wrote:
>"Changing a class that was declared final to no longer be declared
>final does not break [binary compatibility.]"
>
>"Removing the final modifier from a method does not break [binary
>compatibility.]"
>
>So, our practice of making direct calls to final methods and not
>generating vtable entries for them must cease. I'm minded to make an
>exception for java.lang.Object, because we'd otherwise add a bunch of
>vtable entries to every single class for no good reason.
>
>Andrew.
>
>
You can still make a direct call to a final method from the same class.
Because when you make it non-final you will be recompiling the whole
class and will be able to change the calls to go via the vtable.
I agree that you do have to make a vtable entry for all final methods
(but not private ones).
David Daney.
More information about the Java
mailing list