title: Is it ever valid to convert an object from a base class to a subclass
body: <p>In my application at the moment I have (as in so many other applications) an entity called <code>Contact</code>, which represents any person. At its most basic level this is used to represent business contacts. However it can also be used to represent employees of the company. and there are also a couple of special types of employee (let say there is one called <code>Manager</code>)</p>
  
  <p>I am attempting to model this as an inheritance relationship which makes sense. Employees have names and addresses just like contacts, as well as a number of employment related attributes. Managers also have a number of manager specific attributes.</p>
  
  <p>The difficulty comes when an employee gets promoted to a manager. Is it ok to convert the base class <code>Employee</code> to the inheriting class <code>Manager</code>? It feels wrong. I guess I would do it with a specialised constructor on <code>Manager</code>.</p>
  
  <p>As an aside does NHibernate support this kind of behaviour? is it as simple as getting the employee, creating the manager from the employee, then saving the manager?</p>