See question 103801, it is not possible to change an object from its type to a specialization of that type. The suggested solution works, but is really a workaround and makes the object lose its history, system-attributes, and values of attributes having the type auto-number. Yet you can come across a use-case for it every now and then.
Additional arguments for why having the ability to change the type of an object is essential, is to avoid breaking ID’s used via Datahub (or Mendix Connector in MX10), as explained by Ilya Basin in:
Would make improving your domain model a lot easier. You don’t always know from the start that it is better to implement specializations.
Ideally it would be great if the Cast Object function would allow you to select the target object type - that should fall in the Generalization/Specialization hierarchy of the object to be casted – and be able to commit it.
Alternatively a ChangeType action as part of the object actions would be fine too, to avoid breaking the apps that already use the Cast action.