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.