Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
Calling overridable methods during construction poses a risk of invoking methods on an incompletely constructed object 
      and can be difficult to discern. It may leave the sub-class unable to construct its superclass or forced to replicate 
      the construction process completely within itself, losing the ability to call super(). 
      If the default constructor contains a call to an overridable method, the subclass may be completely uninstantiable. 
      Note that this includes method calls throughout the control flow graph - i.e., if a constructor Foo() calls 
      a private method bar() that calls a public method buz(), this denotes a problem. 
      <br/>Example :
public class SeniorClass {
  public SeniorClass(){
      toString(); //may throw NullPointerException if overridden
  public String toString(){
    return "IAmSeniorClass";
public class JuniorClass extends SeniorClass {
  private String name;
  public JuniorClass(){
    super(); //Automatic call leads to NullPointerException
    name = "JuniorClass";
  public String toString(){
    return name.toUpperCase();
New to GrepCode? Check out our FAQ X