Formal model for defender method resolution
Brian Goetz
brian.goetz at oracle.com
Tue Feb 1 06:12:00 PST 2011
I presume you're using virtual as in "virtual base classes", not
"virtual methods."
The primary import of virtual base classes has to do with merging
multiply inherited state; there is no state in interfaces, so I don't
get your implication.
Are you really just saying "isn't this getting complicated"?
On 2/1/2011 1:00 AM, Paul Benedict wrote:
> On Mon, Jan 31, 2011 at 10:53 PM, Howard Lovatt<howard.lovatt at gmail.com>wrote:
>
>>
>> Object m(); // means re-abstract (assuming it has a default, if it
>> doesn't then it is still abstract - no error)
>>
>> Object m() default super; // means inherit the super method even
>> though I have redefined the method (error if no super default or more
>> than one super default exists)
>>
>> Object m() default A.super; // means explicitly inherit the default
>> from super interface A (error if A isn't a super interface or if m
>> doesn't have a default in A)
>>
>>
> Isn't this creeping close, in some ways, to the "virtual" keyword of C++? I
> think that approach has serious drawbacks, where some functions are
> overridable but others are just redefined.
>
> Paul
>
More information about the lambda-dev
mailing list