Suggests to make the constructor of an abstract class protected (because it is useless to have it public)