Hi all, someone showed my a rather strange thing with javac. It is not possible to express this in normal Java, so I am not sure it works as intended.
imagine an interface: interface A { void foo(); } and an implementing class: abstract class B implements A { synthetic void foo() {} } you will notice two possibly odd things here, the class B is abstract even though it implements all methods, but that is legal. The other thing is that he foo implementation is synthetic, which is a flag for the method, but not a valid keyword in Java. Anyway, just imagine you would have those two classe precompiled and now you want to compile this: class C extends B{} Now javac does not compile this. It complains that foo is not implemented. And that is strange, because B does implement the method. The only thing here is that the implementation method is synthetic. I confirmed this here with 1.7.0-ea-b24 and someone else with other versions of javac. If I go and remove synthetic in B, then javac does compile it. Now my question here is if javac is behaving correctly or not. bye Jochen --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "JVM Languages" group. To post to this group, send email to jvm-languages@googlegroups.com To unsubscribe from this group, send email to jvm-languages+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/jvm-languages?hl=en -~----------~----~----~----~------~----~------~--~---