it is generally considered a very bad practice to call instance methods, and especially virtual instance methods from within a constructor exactly for this reason (but also for the reason that the object is not done being initialized yet). 3) Any other solution.