Originally posted by Thomas De Vos:
private methods cannot be overridden, they will behave as if they were declared as final.
Actually, I don't think that's quite accurate. It is true that a private method can not be overridden - the reason being that a private method is not inherited by the subclass. However, if you declare a method in the subclass with the same signature of a final method in the superclass, you'll get a compilation error. If you declare a method in the subclass with the same signature of a private method in the superclass, you'll get no such error.
Here's a link to an
article I wrote about the private modifier. In addition, here's an excerpt from that article:
A private member method is not inherited by subclasses. Therefore, the method can not be overridden. It can't even be accessed by subclasses. A final member method can not be overridden but it can be accessed from the subclass - it is still inherited. While it causes a compiler error to define a method in a subclass with the same signature of a final method in the superclass, defining a method in the subclass with the same signature as the parent's private method is allowed. Why? The subclass doesn't know about the private method, anyway - it's private to the parent class.