Originally posted by K Ville:
In addition, marking a variable/method "private" makes it implicitly final, too

No it doesn't!
Private and final are two very different things. If you declare a member variable to be final, it means that its value can not change once set - it becomes a constant. A private member variable has no such requirement - it can change constantly.
A final member method can not be overridden by a subclass but it is still inherited by that subclass. A private member method can not be overridden because it is not inherited by the subclass. It is, however, perfectly legal for the subclass to define a method with the same signature as the parent's private method because, in essence, it is a brand new method.
Make sure you keep them straight - private does not mean final and vice versa.