On Mon, Jan 19, 2009 at 2:07 PM, Jochen Theodorou <[email protected]> wrote:

>
> Jochen Theodorou schrieb:
> > John Wilson schrieb:
> > [...]
> >> I would say that it's behaving correctly. Synthetic methods are not
> >> intended to be visible to programmers (other than via reflection when
> >> the programmer explicitly asks to look at synthetic methods).
> >
> > well not visible to the programmer maybe, but I thought visible to the
> > compiler they are.
> >
> >> If B is not abstract I presume it will not compile. Is that so?
> >
> > B is not created by javac, only the class C that extends B
>
> I just checked... if B is not abstract, then C compiles.


I think javac is acting correctly.  It requires that every abstract method
have an implementation visible to the programmer.  If you make B not
abstract, that means (to javac) that all interface methods have already been
implemented.  javac is wrong, but that's because you've fooled it by
creating a class B whose user code doesn't implement A but that says it does
(because the class is not abstract).

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "JVM 
Languages" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/jvm-languages?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to