Sun Java Convention Style

Wouter Technology

I started checking the linkdropper code with checkstyle and found lots of warnings. Most of the warnings could easily be fixed with the Jindent formatter tool.
But there are 2 types of some warnings that are still remaining and I was a bit surprised about them. The first one is about the use of the ‘public’ modifier in interfaces. According to section
9.4
of the Java Language specifications it is permitted, but strongly discouraged as a matter of style, to redundantly specify the public modifier for interface methods. I can live with that but why is everyone still using the public modifier in interfaces then?

The second type of warning is the ‘design for extension warning’: The exact rule is that nonprivate, nonstatic methods of classes that can be subclassed must either be a) abstract or b) final or c) have an empty implementation. This API design style protects superclasses
against beeing broken by subclasses
So, I have to make all methods in subclasses final, including their parameters? This looks a bit weird to me. I don’t think most programmers follow this rule.
Do you think it is a must to make code 100% ‘Sun Java Convention Style’ compliant?