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