JLS changes for module impact on inheritance and overriding?

Alex Buckley Alex.Buckley at Sun.COM
Fri Feb 6 20:14:20 PST 2009


Yes. Those exact changes are in Framemaker files I prepared for EDR2 of 
277. Changes also in chapters 6, 13, 15. Ultimately they are not 
controversial but I don't want to publish them because complete public 
specs are not what will determine whether 294 is accepted. For example, 
Jesse Glick has sent me an enormous mail which drops modules in favor of 
friends; thankfully he has been unable to post it to -observer for some 
reason. It's one thing to let Richard Hall have free rein on the EG, but 
Jesse's blundering must be stopped.

Alex

Karen Kinnear wrote:
> Alex,
> 
> With this JSR 294 proposal, would you expect to also change the JLS  in 
> the following ways? See the text
> added in blue below relative to JLS 3rd edition.
> 
> I am currently assuming these changes in the prototype I am making with 
> the hotspot vm.
> 
> thanks,
> Karen
> 
> 8.4.8 Inheritance, Overriding, and Hiding
> 
> A class C inherits from its direct superclass and direct superinterfaces 
> all non-private methods (whether abstract or not) of the superclass and 
> superinterfaces that are public, protected or declared module and in the 
> same module as C, or declared with default access in the same package as 
> C and are neither overridden (§8.4.8.1) nor hidden (§8.4.8.2) by a 
> declaration in the class.
> 
> 8.4.8.1 Overriding (by Instance Methods)
> 
> An instance method m1 declared in a class C overrides another instance 
> method, m2, declared in class A iff all of the following are true:
> 
> C is a subclass of A.
> The signature of m1 is a subsignature (§8.4.2) of the signature of m2.
> Either
> m2 is public, protected or declared module and in the same module as C, 
> or declared with default access in the same package as C, or
> m1 overrides a method m3, m3 distinct from m1, m3 distinct from m2, such 
> that m3 overrides m2.
> Moreover, if m1 is not abstract, then m1 is said to implement any and 
> all declarations of abstract methods that it overrides.



More information about the jigsaw-dev mailing list