I have the following class.
public abstract class MyRoot extends Object {
public MyRoot () {
super();
this.initObj();
}
protected abstract void initObj();
}
All other classes in project extend this class MyRoot. The subclasses put the initialization stuff in initObj().
public class MyCard extends MyRoot
{
public MyCard()
{
super();
}
private ArrayList<Person> persons;
@Override
protected void initObj()
{
this.persons = new ArrayList<Person>();
}
}
In class MyCard I do all initialization in initObj() and everything seems to work. What's wrong with this approach of initializing everything in initObj()? Netbeans points to initObj() in MyRoot's constructor and warns that I have overridable method call in constructor