Formal model for defender method resolution

Brian Goetz brian.goetz at
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>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