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 -~----------~----~----~----~------~----~------~--~---
