Classes abstraites

Il arrive souvent, lorsqu'une interface dispose de plusieurs implémentations, que celles-ci aient du code en commun qu'il faut factoriser. L'erreur souvent commise est alors de considérer un ordre sur les classes, et de les faire hériter les unes des autres. En effet, par ce biais, un objet a toutes les chances de posséder un type qui ne lui correspond pas. Il convient plutôt d'utiliser les classes abstraites, qui sont des classes non instanciables. Notons qu'une classe abstraite peut être déclarée comme implémentant une interface, ce qui permet de garantir les signatures des méthodes. Les méthodes non implémentées devront être déclarées abstraites.