It isn't really a fix, but in these situations what I've been doing in my code is just writing: // don't use this /* private */ final public void foo() {} final makes sure it doesn't get overridden wrongly, and then the comments make my intention a little more clear.