Les métaphores animal/voiture existent pour expliquer la philosophie de la conception orientée objet, qui est bien plus importante à comprendre que la simple mise en œuvre.
Si l'on saute les métaphores et que l'on commence par "il n'y a que des variables et des fonctions pour les gérer", on passe à côté de toute description de la responsabilité. J'ai constamment affaire à des développeurs qui ne tiennent aucun compte de la responsabilité des classes (voir Cartes CRC ), mais au lieu de cela, ils placent les données et les méthodes dans les classes, là où elles sont en cours d'édition à ce moment-là.
Vous manquez aussi le "dis-le, ne demande pas". La métaphore animale fonctionne bien ici. En OO, je dis au chien de se nettoyer. Je ne lui demande pas comment il va s'y prendre, car c'est une boîte noire dont je ne veux pas voir l'intérieur. Le chien sait, donc je n'ai pas besoin de le faire.
Veillez simplement à enseigner à vos élèves qu'il ne s'agit que de métaphores, et non de la réalité. Une "tempête parfaite" dans la "fonte des hypothèques" n'implique en réalité ni tempête ni quoi que ce soit qui fonde.