JLS changes for module impact on inheritance and overriding?

Karen Kinnear Karen.Kinnear at Sun.COM
Fri Feb 6 12:01:49 PST 2009


Thanks Jon - skip the color coding, let's see if bolding works better.

thanks,
Karen

On Feb 6, 2009, at 2:51 PM, Jonathan Gibbons wrote:

> Karen,
>
> No blue text here.
>
> -- Jon
>
>
> 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