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