Paweł Baczyński wrote:This problem is described in Effective Java.
To further elaborate on this, using a
method to invoke an overridable method is
not a problem. In fact, it is a good example of
polymorphism. However, Effective Java (Item 17) advises that ample documentation must be provided for
"self-use of overridable methods".
On the other hand, using a
constructor to invoke an overridable method is a problem because this can cause bugs in your program. Effective Java (Item 17) warns against this.