Le mécanisme des classes abstraites permet de définir des comportements (méthodes) qui devront être implémentés dans les classes filles, mais sans implémenter ces comportements (c’est-à-dire sans écrire de code pour cette méthode). Ainsi, on a l'assurance que les classes filles respecteront le contrat défini par la classe mère abstraite. Ce contrat est une interface de programmation.
Prenons l'exemple suivant : vous avez une classe 'Humain', à partir de laquelle dérivent la classe 'Homme' et la classe 'Femme'. En toute logique, 'Homme' et 'Femme' sont instanciables (les objets créés ont une existence en soi), mais la classe 'Humain' sera déclarée abstraite car un objet 'Humain' n'existe pas en tant que tel, puisqu'il manque l'information sur le sexe. Ici, la classe 'Humain' servira à implémenter des méthodes qui seront utilisées à la fois pour 'Homme' et pour 'Femme'.
Cette contribution était de : http://old.wdforge.org/newbb/viewtopic.php?forum=16&topic_id=6232&post_id=24789