Does it make a difference to mark methods as public in package-private classes?
public
class SomePackagePrivateClass { void foo(); // pack
Another case where the method has to be public is when you are creating a package private implementation of some public class or interface. Since you are not allowed to reduce the visibility of overridden methods, these have to be public.