Inheritance in Doctrine

I was discussing a feature of Doctrine that allows you to map object inheritance in entities. I have used this feature a number of times for a few different scenarios. I was very surprised that none of the other developers had used the feature before and a few had not even heard of it.

I thought it would be useful to discuss how I have used this feature to implement a clean design recently.

The feature has three different modes of working Single Table Inheritance, Class Table Inheritance and Mapped Superclass (which i have not used yet).