Surcharge et héritage
Introduction
Avant de rentrer dans le vif du sujet faisons un peu de théorie. La POO rime avec briques inter-dépendantes formant une pyramide : la base étant générique et la pointe étant spécifique :

Du coup, l'héritage s'avére être une solution possible si vous souhaitez spécialiser la couche Mapping. Attention, la couche système est représentée par un seul niveau, cela ne doit certainement pas être votre cas. Si vous developpez en suivant la méthodologie MVC, votre couche système sera composée d'une couche spécialisant le mapping, une couche controler, et une couche gérant la vue.
Libre à vous de créer le plus de couches possibles afin d'augmenter la fiabilité, réutilisabilité et adaptabilité de votre code.
Maintenant prennons un exemple concrét :
Vous avez un système modulable et extensible - principe du module, que vous listez dans une base de données.
Votre table est Mappée par pdoMap, mais le module comporte certaines fonctionnalités spécifiques à votre système. Ceci n'est qu'une proposition :

Dans cet exemple vous spécialisez le module en lui rajouttant une couche gérant la partie système, puis vous le rendez extensible en définissant un ensemble indéfinit de classes. Les couches ne s'arrétent pas la, car vous pouvez créer une couche intermédiaire gérant la catégorie de votre plugin (ceux spécifiques aux CMS / eCommerce / Administration ...)
Donc n'hésitez pas à créer autant de couches que possible, chacune gérant sa partie spécifique - cela vous évitera toute redondance de code et vous exploiterez pleinement la POO.

